![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
XiZhi_BUAA
这个作者很懒,什么都没留下…
展开
-
设计模式--里氏转换
里氏转换: is a的关系,即一个子类就是一个父类。例如:动物父类和狗子类,一只狗是一个动物。为了满足里氏转换,子类需要有父类的接口。比如:动物有接口”吃“,狗也必须有接口”吃“,这样使用动物指针指向狗类对象时,调用吃接口,才能狗让狗吃,而不是动物吃。动物和狗都是依赖与吃这个接口的。 ...原创 2021-04-29 15:18:15 · 95 阅读 · 0 评论 -
设计模式--开闭原则
开闭原则: 对扩展开放,最修改封闭。即,软件实体(类、模块、函数等)应当是可以扩展的,但是不可以修改。 个人理解 1.对软件实体做更改会影响程序的现有功能,可能会导致意想不到的问题,因此进行程序测试时,又需要重复进行一些本来可以避免的测试用例。 2.采用复合开闭原则的设计模式,可以使代码结构清晰,维护和修改代价小。 3.比如:使用工厂模式代替简单工厂模式,进行某一功能修改或扩展时,只需要修改相应的工厂类和产品类即可,不会对其他功能模块产生影响,也只需要对修改的功能做测试即可。 简单工厂模式 工厂模式 如原创 2021-04-29 14:46:09 · 121 阅读 · 0 评论 -
设计模式--单一职责原则的个人理解
单一职责: 一个类只能有一个职责,这个职责应当是明确的,完整的。就是说,一个类只能干一件事,并且具备干这件事所需要的所有方法。 1.一个好的例子 class CmdFactory { private: std::string mCmdString; CmdSplit* mCmdSplit; CmdTypeAnalyze* mCmdTypeAnalyze; CmdParaAnalyze* mCmdParaAnalyze; CmdPathAnalyze* mCmdPathAnalyze; public原创 2021-04-29 12:04:01 · 138 阅读 · 0 评论 -
设计模式--简单工厂
简单工厂: 定义产品基类和产品子类,并定义一个用于生产产品对象的工厂。 避免需要增加新产品时,客户端代码的修改。如果有新产品,需要增加新产品子类,并修改工厂中生产产品的方法即可。缺点是,不满足开闭原则,增加新产品需要修改工厂类。 ...原创 2021-04-29 11:41:31 · 90 阅读 · 0 评论 -
设计模式--策略模式
策略模式: 定义算法基类和算法子类,算法类之间可以相互替换。可以根据需求变化增删修改算法类。而算法类的修改,不会影响使用算法的客户端。 策略模式可以减少if else的使用。原创 2021-04-29 11:28:15 · 99 阅读 · 0 评论