设计模式
工农村贴膜小哥
最喜欢贴膜了
展开
-
c/c++--单例模式
什么是单例模式一个类中,只有一个实例对象,这种设计模式就叫单例模式,常常用static实现c的实现方式创建了一个OBJECT结构体,它有一个str的成员数据。我们需要实现这个结构体只有一个实例。创建get_object方法判断是否创建了实例,没创建则创建,创建了则返回这个对象。typedef struct OBJECT{ char *str;}OBJECT;OBJECT * g...原创 2018-12-05 22:26:02 · 415 阅读 · 0 评论 -
c/c++工厂模式
简单工厂模式不符合开放关闭原则,扩展功能时候需要修改之前的代码。所以尽量少用。结构:由一个工厂父类(抽象工厂),多个工厂子类(具体工厂),一个产品父类(抽象产品),多个产品子类(具体产品)构成。C实现方式 typedef struct people{ int age; char name[20];};typedef struct student{ people p; /...原创 2018-12-19 22:04:02 · 391 阅读 · 0 评论 -
c/c++简单工厂模式
什么是简单工厂模式它通过一个工厂类根据传入的参数,动态决定创建哪一个产品类的实例。它并不属于 23 种 GoF 设计模式之一,但常常被人们使用。结构:由一个工厂,一个产品父类(抽象产品),多个产品子类(具体产品)构成。流程:根据唯一的工厂对象中的函数参数,判断并自动new出一个产品子类对象并返回其产品父类的指针,这样利用父类的指针执行父类的虚函数,就可以动态绑定子类的重写函数,从而实现多...原创 2018-12-15 16:08:31 · 918 阅读 · 0 评论 -
装饰模式
使用当我们需要在一个类中增加一定的功能时候,常常想到增加子类扩展功能,但如果需要给5个同级类增加相同的功能,就需要写5个子类。而在基类上进行修改增加功能不但混淆了核心功能更违背了开闭原则,这时候就需要使用装饰模式概念动态的给一些对象增添一些职责,就增加功能来说,装饰模式比增加子类更灵活。它把每个要装饰的功能放在单独的类中,并让这个类包装所要装饰的对象,当需要执行特殊行为时候,客户代码就可以根...原创 2019-02-21 22:33:28 · 180 阅读 · 0 评论 -
策略模式
策略模式作用在有多种算法相似的情况下,使用 if…else 所带来的复杂和难以维护。策略模式定义了完成相同工作的算法家族,分别封装起来,让他们之间可以相互转换,使算法的改变不会影响使用算法的客户。这样减少了各种算法和使用算法之间的耦合,由于每个算法都有自己的类,通过自己的接口单独测试,简化了单元测试。UML模型构建一个基类CashSuper,cash1,cash2继承该基类,context类...原创 2019-02-20 20:47:13 · 199 阅读 · 0 评论