摘要: 抽象工厂模式(Abstract Factory),提供一个创建一系列相关或者相互依赖对象的接口,而无须指定它们具体的类。 优点: 1、易于交换产品系列,由于具体工厂类在一个应用中只需要在初始化的时候出现一次,这就使得改变一个应用的具体工厂变得非常容易,它只需要改变具体工厂即可使用不同的产品配置; 2 阅读全文
posted @ 2018-03-03 10:13 庭前竹 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 观察者模式(Observer),又叫发布-订阅(Publish/Subscribe)模式,定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己。 使用场景: 将一个系统分割成一系列互相协作的类有一个很不好的副 阅读全文
posted @ 2018-03-02 17:35 庭前竹 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 建造者模式(Builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 使用场景: 用于创建一些复杂的对象,这些对象的内部构建间的建造顺序通常是稳定的,但对象内部的构建通常面临着复杂的变化。 优点: 使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所 阅读全文
posted @ 2018-03-02 17:07 庭前竹 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 使用场景: 1、在设计初期阶段,应该要有意识的将不同的两个层分离,层与层之间建立外观Facade; 2、在开发阶段,子系统往往因为不断的重构演化而变得越来越复杂,增加外观 阅读全文
posted @ 2018-03-02 16:53 庭前竹 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式(TemplateMethod),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑使用模板方法模 阅读全文
posted @ 2018-03-02 16:44 庭前竹 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 原型模式其实就是从一个对象再创建另外一个可定制的对象,而不需要知道任何创建的细节。 克隆的时候,会创建当前对象的浅表副本。方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型 阅读全文
posted @ 2018-03-02 16:04 庭前竹 阅读(89) 评论(0) 推荐(0) 编辑
摘要: 工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 根据依赖倒转原则,抽象出一个工厂类接口,所有的要生产具体类的工厂,实现这个接口。增加一个新的具体类,只需要增加一个相应的工厂。 简单工厂模式和工厂方法模式的对比 阅读全文
posted @ 2018-03-02 15:48 庭前竹 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 使用场景; 1、远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同的地址空间的事实。比如WebService的引用。 2、虚拟代理,是根据需要创建开销很大的对象,通过它来存放实例化需要很长时间 阅读全文
posted @ 2018-03-02 15:26 庭前竹 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 装饰模式是利用SetComponent来对对象进行包装的,这样每个装饰对象的实现就和如何使用这个对象分离开了,每个装饰对象只关心自己的功能,不需要关心如何被添加到对象当中。 装饰模式是为 阅读全文
posted @ 2018-03-02 15:08 庭前竹 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 优点: 策略模式是一种定义一系列算法的方法,从概念上来看,所有这些算法完成的都是相同的工作,只是实现不同,它可以以相同的方式调用所有的算法,减少了各种算法类与使用算法 阅读全文
posted @ 2018-03-02 12:21 庭前竹 阅读(103) 评论(0) 推荐(0) 编辑