C++设计模式笔记
文章平均质量分 51
菜鸡裸辞后,重新吭一吭C++设计模式
wangshenqiang
这个作者很懒,什么都没留下…
展开
-
设计模式 ------ 策略模式(Strategy Pattern)
定义一系列算法,把他们一个个封装起来,并使他们可以互相替换(不同情况下处理方式需改变时,替换处理算法)。该模式的算法可以独立于使用它的程序代码而变化(扩展子类化算法)。(代码和类图略有出入,因为第一稿的指针使用的是原始方法,当前使用的C++11以上版本的智能指针,避免直接new创建堆对象,减少内存泄漏的风险)。主要应用在根据不同条件(未来可能存在其他不确定条件),进行不同操作的代码;使用模式的方法进行类扩展,从而避免直接进行代码改动。遵循:对修改封闭,对扩展开放的原则。原创 2023-09-27 17:46:25 · 90 阅读 · 0 评论 -
设计模式 ------ 模板方法(Template Method)
这里的 MyThread 是效仿 Qt4 的QThread做的简单的实现(这里仅仅只是为了展示template method的用法,QThread实际实现要比这复杂),start函数内部的线程创建与使用作为Template Method固定不变的部分,而将线程需要做的工作放到子类UseMyThread中去进行延时实现。Template Method使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。模板方法: 定义一个操作中的算法骨架(稳定),而将一些步骤延迟(变化)到子类中.原创 2023-09-22 17:43:09 · 77 阅读 · 0 评论 -
面向对象设计原则
1. 使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良影响,从而实现不同层次间的松耦合。2. 子类和父类耦合度高于包含组合(当扩展方向不一样时,组合可以在其他地方单独使用,但继承耦合度高,不可分割)2. 抽象(稳定)不应该依赖于实现细节(变化),实现细节(变化)应该依赖于抽象(稳定)1. 高层模块(稳定)不应该依赖低层模块(变化),二者应该依赖抽象(稳定)1. 不应该强迫客户程序依赖他们不需要的接口(使用者用不到的接口私有化)2. 变化的方向隐含着类的责任。原创 2023-09-21 11:52:25 · 53 阅读 · 0 评论