随笔分类 -  设计模式

摘要: 阅读全文
posted @ 2012-02-06 19:48 残夜 阅读(422) 评论(0) 推荐(0)
摘要:一、概念模板方法模式在一个方法中定义算法骨架,而将一些步骤延迟到子类。模板方法使得子类在不改变算法骨架的前提下,重新定义算法中的某些步骤。二、要点模板方法中的非final方法(默认实现或不做事的方法)称为“钩子”。钩子可以在子类的实现。钩子可以让子类能够有机会对模板方法中某些即将发生的(或刚刚发生的)步骤做出反应工厂模式为模板方法模式的特例。除了可以灵活应对子步骤的变化外,“不用调用我,让我来调用你”的反向控制结构是Template Method的典型应用。模板方法是代码复用的一项基本的技术,在类库中尤其重要。它遵循“抽象类应当拥有尽可能多的行为,应当拥有尽可能少的数据”的重构原则。三、适用性 阅读全文
posted @ 2012-02-06 14:04 残夜 阅读(413) 评论(0) 推荐(0)
摘要:一、概念单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供全局访问点。这个类称为单例类。 二、要点单例模式的要点有三个;一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。实现单例模式的思路是:一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常使用getInstance这个名称);当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;同时我们还将该类的构造函数定义为私有方法,这样其他处的代码就无法通过调用该类的构造函数来实例化该类的 阅读全文
posted @ 2012-02-04 10:04 残夜 阅读(615) 评论(0) 推荐(0)
摘要:一、概念Decorator模式(别名Wrapper):动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。二、设计原则多用组合,少用继承。类应设计的对扩展开放,对修改关闭。利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态地进行扩展。 三、要点:装饰者和被装饰对象有相同的超类型。可以用一个或多个装饰者包装一个对象。装饰者可以在所委托被装饰者的行为之前或之后,加上自己的行为,以达到特定的目的。对象可以在任何时候被装饰,所以可以在运行时动态的,不限量的用你喜欢的装饰者来装饰对象。装 阅读全文
posted @ 2012-02-03 16:24 残夜 阅读(663) 评论(0) 推荐(0)