
读书笔记之《设计模式之禅》
记录
楼兰公子
这个作者很懒,什么都没留下…
展开
-
单例模式使用的要点
单例模式要点1.将默认构造函数和拷贝构造函数私有化,------避免通过构造函数创建对象2.内部维护一个静态对象指针(类内声明,类外实现,实现对象的唯一性)3.私有化唯一指针(私有化后无法通过外部对象进行修改,实现真正的唯一)4.对外提供getInstance()访问这个指针(由于对象指针私有化,此方法用来给出接口获取唯一对象)1.需要生成唯一序列的环境2.需要频繁实例化然后销毁的对象3.创建对象时耗时过多或耗资源过多,但又经常用到的对象4.方便资源相互通信的环境...原创 2020-07-28 10:31:45 · 206 阅读 · 0 评论 -
代码设计六大原则
1.接口隔离2.单一职责3.依赖倒置4.里氏替换5.开闭原则6迪米特法则原创 2020-01-14 10:33:37 · 353 阅读 · 0 评论 -
设计模式之六大设计原则
一.单一职责原则二.里氏替换原则三.依赖倒置原则四.接口隔离原则五.迪米特法则六.开闭原则原创 2020-01-11 10:01:25 · 145 阅读 · 0 评论 -
策略模式实现样例
/*定义一系列算法,并一个个封装,使之可以互相替换.是的算法独立于客户,或者说算法完成的功能是一样的.对外接口移植.只是各自实现上存在差异主要解决:多种算法相似情况下使用if.else所带来的复杂和难以维护使用时机:一个系统多个类,差异点只在于他们的直接行为解决:将来算法封装成类可以任意替换关键代码:实现同一个接口缺点:1.策略类会增多,2.所有策略都需要对外暴露*/#ifnd...转载 2020-01-07 17:59:22 · 171 阅读 · 0 评论 -
装饰模式实现样例
/*装饰模式:动态地给对象添加额外的功能,就新功能来说,装饰器模式比生产子类更加灵活. * 主要解决:通常我们为了扩展一个类经常使用继承的方式,由于集成为类引入静态特征,并且随着扩展功能的增多,子类会膨胀. * 如何解决:将具体的功能划分,同时继承装饰者类 * 关键代码:装饰类复合和继承组件类,具体的扩展类重写父类的方法*/#ifndef MODE_DECORATE_HPP#def...转载 2020-01-07 17:53:51 · 172 阅读 · 0 评论 -
组合模式实现样例
/**组合模式:将对象组合程树形结构以表示"部分-整体"的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性. * 主要解决:在属性结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样处理复杂元素,从而使客户程序与复杂元素解耦 * 如何解决:树枝和树叶实现统一接口,树枝内部组合该接口 * 关键代码:树枝内部组合该接口,并且含有内部属性list,里面放Co...原创 2020-01-07 17:53:07 · 329 阅读 · 0 评论 -
建造者模式实现样例
/*建造者模式: 将复杂对象的构建和其表示分离,使得同样的构建过程可以创建不同的表示. * 主要解决: 一个复杂对象的创建工作,由各个部分的子对象用一定的算法构成,由于需要变化,这个复杂对象的各个部分经常面临变化,但它们组合在一起的算法相对稳定 * 如何解决:变与不变分开 * 关键代码:建造者:创建和提供实例,Director:管理建造出来的实例的依赖关系.. * 缺点:1.产品必须有共...原创 2020-01-07 17:52:11 · 112 阅读 · 0 评论 -
抽象工厂实现样例
/*提供一个创建西一列相关或相互依赖的对象接口,而无需指定他们的具体类.主要解决:接口选择问题使用时机:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品如何解决:一个产品族里定义多个产品关键代码:在一个工厂里聚合多个同类产品.缺点:产品族扩展困难,要增加一个系列的某一个产品,既要在抽象的Creator里面加代码,又要在具体的对象李添加代码*/#ifndef MODE_...原创 2020-01-07 17:50:01 · 108 阅读 · 0 评论 -
适配模式的实现样例
/**将一个类的接口转换成客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作*主要解决:在软件中,厂存在一些"现存的现象"放到新的环境中,而新环境要求的接口是现对象不能满足的*使用时机:1.系统需要使用现有的类,二此类的接口不符合系统需要 2.想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类,包括一些可能在将来引进的类一起工作,...原创 2020-01-07 17:49:03 · 130 阅读 · 0 评论 -
观察者模式的实现样例
/*观察者模式:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变,所有依赖于它的对象都得到通知并自动更新 * 主要解决:一个对象更新,其他对象也要更新 * 如何解决:目标类通知函数通知所有观察者自动更新 * 关键代码:在目标类中增加一个ArrayList来存放观察者们*/#ifndef MODE_OBSERVER_HPP#define MODE_OBSERVER_HPP...原创 2020-01-07 17:47:34 · 171 阅读 · 0 评论 -
组合设计模式中出现的疑问
Class FinanceDept has a constructer with 1 argument that is not explicitPrefer prefix ++/-- operators for non-primitive types原创 2020-01-06 17:12:34 · 602 阅读 · 0 评论