物是人非事事休,欲语泪先流|

游客0721

园龄:2年粉丝:4关注:2

随笔分类 -  设计模式

工厂方法模式
摘要:工厂方法模式 简单工厂模式 缺点:只能创建单一类型的对象,而不是不同类型的类对象 需要使用switch case类工厂代码还需要修改,不是扩展而是修改 假设我们需要实现一些不同的爬虫类,比如 TextSpider 、 ImageSpider 等等,它们都需要继承自一个 Spider 抽象基类。这里我
11
0
0
单例模式(正式)
摘要:当需要严格控制一个类在全局只有唯一一个实例,并且可以随时调用它的时候,就可以使用单例模式。 单例模式可以以实例化时间分为懒汉式和饿汉式、以C实现方式分为C++98的实现以及C++11的实现。 懒汉式 c++11 class Singleton { public: static Singleton*
10
0
0
设计模式概述
摘要:为什么需要设计模式 促进代码重用,应对需求和系统的变化 面向对象设计模式 面向对象的三大机制:封装、继承和多态 代码隔离:对新增的代码采取新增类的方式实现,对类的继承不需要修改甚至可能不需要重新编译原有的类。 在一个基本的爬虫类中,都会有一个不变的流程,也就是发送请求,匹配数据,写入文件。这三个步骤
6
0
0
建造者模式
摘要:感觉这模式就是常见的封装.. 看不出哪里比简单工厂好 建造者模式 动机 将一个复杂对象的创建过程及其表示分离,同一个创建过程可以创建不同的表示 当需要创建一个包含多个部分或配置选项的复杂对象,并且需要将构建过程与表示分离时,建造者模式很有用 帮助你灵活地构建不同配置的对象,同时保持构建过程的清晰性和
4
0
0
工厂模式(正式)
摘要:抽象工厂模式及示例 模式的动机 提供一种接口,用于创建一系列相关或相互依赖的对象 抽象工厂模式通过引入抽象工厂接口,允许客户端代码通过工厂接口创建产品,而不需要关心具体的产品类; 数据库之间的查询语句是差不多的,不用管是哪类数据库 使得客户端代码可以与特定产品的具体类解耦,实现了抽象和实现的分离 只
3
0
0
代理模式 弃
摘要:工作场景:让用户根据接口查询系统各资源占用率 优化用户性能 传统代码: 传统代码 //main.cpp #include <iostream> #include "ServerInfoGetter.h" #include <chrono> #include <thread> int main() {
7
0
0
工厂模式 弃
摘要:工作场景:编写一个给用户发送短信的程序 传统写法 传统写法 #include <stdio.h> #include <string> enum NotifMessageType { WUDI, FEITIAN }; class NotifMessage { public: int sendMessa
6
0
0
原型模式 弃
摘要:c++对象拷贝机制 假设有一个类对象class,使用 A a; A* a = new A();一个分配在栈,一个分配在堆,更深的解释呢? 自动资源 会被自动回收的资源,在一个函数内手动声明的变量会在函数结束时被释放,局部变量都是自动资源,有自己的作用域(生命周期) void fun(){ int a
9
0
0
单例模式(一些误区)弃
摘要:工作场景:其他调用者直接创建类的对象,而不是使用内置的getinstance创建对象 怎么解决(只能通过getinstance创建对象) 创建对象就必须使用构造函数,把构造函数设置为私有的,如果在外部类或者文件调用就会报错 把指针也设置私有防止乱改其是否为空影响对象创建 使用getinstance返
11
0
0
单例模式(饿汉式)弃
摘要:工作场景:第二个读取数据库的用户比第一个快的多 为什么会变慢 第一个用户访问的时候需要进行数据库配置文件的读取以及空指针的首次判断以及创建一个类对象指针, 饿汉式思路 //DBConfig DBConfig* DBConfig::config = new DBconfig(); //C3_2 int
8
0
0
单例模式(懒汉式)弃
摘要:工作场景:配置文件 比如redis的配置文件redis.conf里面包涵连接数据库需要的连接信息、用户名、用户密码等配置信息,每个用户都有这个可修改的配置文件进行数据库连接个性化配置(这份文件不能写死但大体内容类似),所以需要使用设计模式思想进行代码复用,这里采将会用设计模式里的单例模式 补充:后续
15
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起
  1. 1 優しい光 水谷広実
  2. 2 ひだまりの中で SONO MAKERS,鈴丸
  3. 3 白い吐息 MANYO
  4. 4 夏の子守歌 折戸伸治
優しい光 - 水谷広実
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.