摘要:工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体类实现。抽象产品(Product)角色:担任这个角色的泪是有工厂方法模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个接口或抽象类实现。具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是这个角色的实...
阅读全文
摘要:没有个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。——Christopher Alexander设计模式描述了软件设计过程中某一类常见问题的一般性解决方案。面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。从设计原则到设计模式针对接口编程,而不是针对实现编程客户无须知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口优先...
阅读全文
摘要:动机: 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。 如何应对这种变化?如何向“客房程序(使用这些对象的程序)”隔离出“这些易变对象”,从而使得“依赖这些易变对象的客房程序”不随着需求改变而改变?意图: ...
阅读全文
摘要:动机: 在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的了对象用一定的算法构成:由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却欲相对稳定。 如何应对这种变化?如何提供一种“封闭机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建...
阅读全文
摘要:动机: 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客房程序和这种“多系列具体对象创建工作”的支耦合?意图: 提供一个接口,让该接口负责创建一系列“相关或者...
阅读全文