![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
wyy-lk
这个作者很懒,什么都没留下…
展开
-
设计模式之抽象工厂模式
意图提供一个创建一系列相关或相关依赖对象的接口,而无需指定它们具体的类。举例说明生产一辆车,需要车身上的各种零件。为了简便说明,假设生产一辆车只需要轮胎和方向盘,并且它们必须要相互匹配才能够使车辆正常运行,所以轮胎和方向盘之间具有依赖关系。就是说车辆A只能使用轮胎A和方向盘A才能正常运行,如果使用轮胎A和方向盘B就无法正常运行。代码#include <iostream>using namespace std;// 轮胎产品 class TyreProduct{};原创 2020-05-31 18:33:46 · 166 阅读 · 0 评论 -
设计模式之装饰器模式
背景:当我们只是给某个对象而不是整个类添加某个具体的功能时。 可以使用装饰器,让装饰器去完成对象所需要添加的某种功能。如果在原有类基础上去继承产生新的类,在新的类中添加这个新功能,这样做会造成代码大量冗余目标:尽量使用组合,不要使用继承;尽量在编译时复用,运行时多态。实例:#include <iostream>using namespace std;class Stream{ public: virtual void Read(int num) = 0; virtual原创 2020-05-28 17:27:12 · 152 阅读 · 0 评论 -
设计模式之策略模式
背景:当需要完成某一个功能时,在不同的条件下,会有不同的实现方法。如果将这些不同的实现都放在一个类中: 一是造成代码复杂,难以维护。二是如果添加新条件下的不同实现方法,需要重新修改源代码,可能造成意料之外的问题,并且难度会很大。同时也不符合开闭原则:对拓展开放,对修改关闭。三是这个类的不同对象在使用时,可能只会使用到其中一种方法,导致时间复杂度变高,因为需要在所有方法中去找到适合的方法。解决办法:将这些方法剥离出来,使用一个类作为所有方法的基类,不同方法作为子类去继承这个基类,由每个子类分别原创 2020-05-28 17:17:30 · 92 阅读 · 0 评论