摘要:
四个角色:抽象原型角色(Prototype)、具体原型角色(ConcretePrototype)、原型管理器角色(PrototypeManager)、客户端角色(Client) 抽象原型角色(Prototype):定义原型的克隆方法接口 具体原型角色(ConcretePrototype):实现原型具体的克隆方法 原型管理器角色(PrototypeManager):负责具体原型的增、删、查和原型容器。 客户端角色(Client):实例化多个原型、并且通过原型的克隆接口克隆多个子对象。实现思路:首先实例化多个原型A、B、C、D,然后在客户端调用A原型的Clone接口即可获取到A原型的克隆子对象,并 阅读全文
摘要:
4个角色:被观察者(Subject/目标对象接口),具体被观察者(ConcreteSubject/具体目标对象),观察者(Observer),具体观察者(ConcreteObserver)被观察者(Subject/目标对象接口):目标对象的抽象接口具体被观察者(ConcreteSubject/具体目标对象):目标对象的具体实现,能够添加、删除具体对象并且通知所有的观察者对象。观察者:观察到目标对象的动作的时候有所反应的接口 具体观察者:观察者对象的具体实现,并且有相关动作。 实现思路:客户端创建目标对象,目标对象添加所有的观察者对象,然后目标对象更新,所有的观察者对象产生反应。类图: 应用场景 阅读全文
摘要:
4个角色:指挥者(Director),建造者(Builder),具体建造者(ConcreteBuilder),产品(Product) 产品:需要创建的对象产品 具体建造者:创建产品的实例并且实现建造者多个方法对产品进行装配 建造者:本质为抽象类,里面的抽象方法供具体建造者重写,声明产品的引用 指挥者:调用建造者抽象类以及其方法 实现思路:客户端创建一个指挥者,并且实例化需要的产品的具体建造者,然后指挥者调用具体建造者的实例即将产品生产出来。类图: 应用场景:在Silverlight中我们需要生产一列多行的输入框+TextBlock的组合,但是这些输入框的类型不同,有一些只能输入256个字符,. 阅读全文