设计模式-Singleton

动机 在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能保证它们的逻辑正确性、以及良好的效率。 如果绕过常规的构造器,提供一种机制来保证一个类只有一个实例。 这应该是类设计者的责任,而不是使用者的责任。 定义 保证一个类...

设计模式

设计模式-Builder

动机 在软件系统中,有时候面临着”一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求变化,这个复杂对象的各个部分经常面临这剧烈变化,但是将他们组合在一起的算法却相对稳定。 如何提供一种封装机制来隔离出复杂对象各个部分的变化,...

设计模式

设计模式-Prototype

意图用原型实例制定创建对象的种类,并且通过拷贝这些原型创建新的对象 来源 原型模式可以由工厂方法演化而来 具体讲就是将抽象基类Product和Creator合并,并将FactoryMethod改为clone方法 代码示例客户程序抽象类具体类1234...

设计模式

设计模式-AbstractFactory

动机 在软件系统中,经常面临着一系列相关或相互依赖的对象的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。(注:系列会增多,但系列下的功能不会有变化) 如何绕过常规的对象创建方法(new),提供一种”封装机制”来避免客户程序和这种”多...

设计模式

设计模式-FactoryMethod

动机 抽象框架感知抽象类,抽象框架必须实例化一个具体类,但抽象框架不知道哪个类要被实例化。 绕开常规创建对象方法new,提供一种”封装机制”来避免客户程序和具体对象的紧耦合 定义 意图定义一个用于创建对象的接口,让子类决定实例化哪个类。 使一个类的...

设计模式

设计模式-Bridge

以下笔记摘录自李建忠老师的<<c++设计模式>>和书籍<<设计模式>> 动机 由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。 定义 将抽象部分(业务功能)与实现部...

设计模式

设计模式-Decorator

以下笔记摘录自李建忠老师的<<c++设计模式>>和书籍<<设计模式>> 动机希望给某个对象而不是整个类添加一些功能,或者说动态的给一个对象添加一些额外的职责 原始代码业务操作主体类扩展操作:加密更多...

设计模式