C/C++
设计模式 标签描述

1什么是工厂模式? 工厂模式,顾名思义,就是把将对象的实例化过程封装在工厂类中的方式。工厂负责生产相应的对象实例。 一般分为两种工厂模式:简单工厂;抽象工厂 优点: 用户不需要解决具体的细节问题,利用工厂类进行生产产品细节; 可以将对象的创建与使用代码分离,提供一种统一的接口来创建不同类型的对象。 创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 缺点:简单工厂;抽象工厂各有各自的优缺点(后面详细展开) 2简单工厂SimpleFactory UML类图分析: 1、抽象产品(AbstractProduct) 2、产品的具体实现类(Product...

单例模式: 一个类只实例化一个对象 类的构造函数设置private或者protected 提供一个静态的能获取类对象地址的类指针(用静态类指针指向函数,函数内部获取类对象地址) 线程安全,但不管用不用的上都会先生成对象实例。 饿汉单例模式: 1.1:获取类对象方式问题 1.//静态的类的指针指向getInstence() staticSingleHungryModgetInstence(){ returnobject_; }//调用到getInstence()函数时,返回object_,object_是类指针。 1.2:类对象初始化问题 //初始化-静态的指针SingleH...

2:懒汉单例模式:用到创建对象时才创建对象;线程非安全但可以通过一些方式变成线程安全; 2.1:获取类对象方式问题:跟饿汉式的异同点: 相同之处: 都是单例模式,一个类只实例化一个对象 类成员:都有静态全局函数和静态全局类指针 创建对象方式:都是通过静态全局类指针指向特定的函数,通过这个静态全局函数来创建对象 不同之处: 创建对象的时机: 饿汉式--静态全局指针在main函数之前先new出对象 懒汉式--静态全局指针初始化为nullptr空指针,当main函数中需要创建对象时调用那个静态函数来创建对象 线程安全与否: 饿汉式--线程...

原型设计模式是一种对象创建型模式,它通过复制现有对象来创建新的对象,而无需显式地调用构造函数。 简单来说,原型设计模式就是通过克隆已有对象来创建新对象。 举一个通俗易懂的例子,假设我们有一个图形库,其中有一个基类Shape表示图形,它有一个纯虚函数draw()用于绘制图形。 现在我们希望能够复制已有的图形对象来创建新的图形对象,而无需重新构造图形对象 //图形基类 classShape{ public: virtualShape(){} virtualvoiddraw()=0; virtualShapeclone()=0; }; //圆形类 classCircle:public...