随笔分类 - 设计模式
摘要:一、简介1、名称:装饰(Decorator)模式或者包装器(Wrapper)模式2、定义:动态的给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。二、参与者1、Component——定义一个对象接口,可以给这些对象动态地添加职责。2、ConcreteComponent——定义一个对象,可以给这个对象添加一些职责。3、Decorator——维持一个指向Component对象的指针,并定义一个与Component接口一致的接口。三、协作Decorator将请求转发给它的Component对象,并有可能在转发请求前后执行一些附加的动作。四、总结当系统需要新功能
阅读全文
摘要:一、简介1、名称:策略模式或政策模式。2、定义:定义一系列的算法,把他们一个个封装起来,并且使它们可互相替换。本模式使得算法可独立于使用它的客户而变化。二、参与者1、Strategy(抽象策略类)——定义所有支持算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。2、ConcreteStrategy(具体策略类)——以Strategy接口实现某具体算法。3、Context(上下文、应用场景)——用一个ConcreteStrategy对象来配置。——维护一个对Strategy对象的引用。——可定义一个接口来让Strategy访问它的数据。三、参考文档百度
阅读全文
摘要:一、简介1、名称:工厂方法模式又叫做虚拟构造子(VirtualConstructor)模式或者多态性工厂模式2、功能:定义一个用于创建对象的接口,让子类的决定实例化哪一个类。Factory Method使一个类实例化延迟到子类。3、实现方式:核心工厂不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。4、意义:工厂方法模式是简单工厂模式的衍生,解决了许多简单工厂模式的问题。首先完全实现“开-闭原则”,实现了可扩展。其次更复杂的层次结构,可以应用于产品结果复杂的场合。三、
阅读全文
摘要:一、简介1、名称:简单工厂模式又称为静态工厂模式。2、功能:定义一个用于创建对象的父类或者接口。3、实现方式:由工厂类根据传入的参数,动态决定创建哪一个产品类。二、参与者1、工厂(Creator)类角色:负责实现创建所有实例的内部逻辑。工厂类可以被外界调用,创建所需产品的对象。2、抽象产品(Product):简单工程模式创建的对象(具体产品)的父类或接口。它负责描述所有实例共有的公共接口。3、具体产品(ConcreteProduct)角色:简单工厂模式的创建目标,所有创建的对象都是此角色的实例(某个具体类创建)。三、类图,代码参考博客:http://hlzhou.iteye.com/blog/
阅读全文
摘要:1、意图将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。2、动机Composite模式的关键是一个抽象类,它既可以代表图元,又可以代表图元的容器。Composite使用递归组合来进行实现。3、适用性1)想表示对象的部分-整体层次结构。2)希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。4、结构5、参与者1)Component-为组合中的对象声明接口。-在适当的情况下,实现所有类共有接口的缺省行为。-声明一个接口用于访问和管理Composite的子组件。2)Leaf-在组合中表示叶节点对象,叶节点没有
阅读全文