组合模式,提供一种层级结构,使得我们能够忽略对象与对象集合间的差异,一视同仁地对待它们。更重要的是组合模式与迭代器模式组合起来可以轻松地完成一些神奇的事情(比如封装层级结构的遍历,以及在遍历基础上扩展的其它操作),牺牲类的单一责任原则,来换取透明性。
月度归档:2015年03月
设计模式之迭代器模式(Iterator Pattern)
迭代器模式是一种比较简单的模式,说白了就是用迭代器来封装遍历细节。集合对象大都支持遍历操作(如Array,List,Set,Map等等),但由于各个集合对象内部实现方式不同,遍历时需要调用的接口也不同,迭代器就是为了给集合对象提供一个统一的接口以支持遍历操作
设计模式之模版方法模式(Template Method Pattern)
模版方法模式,用来封装算法骨架(流程),某些步骤由子类实现。此外还有另一个模式:策略模式,二者都是用来封装算法的,但侧重点不同,本文展开详细讨论。
设计模式之外观模式(Facade Pattern)
外观模式,用来为复杂的子系统提供简单易用的高层接口。如果你发现调用某个子系统实现一个简单的功能也需要调用很多个低层组件,那么你可能需要外观模式来拯救你。
设计模式之适配器模式(Adapter Pattern)
适配器模式,用来实现接口的转换
设计模式之命令模式(Command Pattern)
命令模式,用来解耦请求者与执行者的一种设计模式,其扩展应用主要有队列请求(把运算限制在指定的工作线程中)和日志请求(用于生成日志及恢复事务)。
设计模式之单件模式(Singleton Pattern)
单件模式又被称为单例模式,定义很简单——只允许存在指定类的唯一实例(instance),并由该类提供全局访问点。但在实际应用的时候会遇到很多问题,比如在多线程,或多个classloader环境下,如何保证单件模式的正确性等等
设计模式之工厂模式(Factory Pattern)
之前一直以为定义一个XXXFactory类来负责new对象就是工厂模式了,而且一般为了方便使用,都把工厂类中的Create定义为static方法,仔细学习过后才发现工厂模式远没有这么简单,而且,严格地说,这种被称为“简单工厂模式”的方式根本不能称之为“模式”
设计模式之装饰者模式(Decorator Pattern)
装饰者模式是一种在框架中应用广泛的设计模式,在JavaAPI中文件流操作就应用了这样的模式,例如InputStream in = new BufferedInputStream(new FileInputStream(file));其中,BufferedInputStream被用来装饰FileInputStream,从而实现功能的扩展。装饰者模式满足“对修改关闭,对扩展开放”的OO设计原则,是一种很不错的设计模式。
设计模式之观察者模式(Observer Pattern)
观察者模式,一句话概括,就是定义并维护对象之间的一对多关系。“定义”是指建立“一”与“多”之间的依赖关系;“维护”是指我们可以动态地解除依赖以及建立新的依赖。
设计模式之策略模式(Strategy Pattern)
设计模式是由代码结构优化经验萃取出来的理论知识,应用成熟的设计模式能够增强代码的可复用性、可扩展性与可维护性。其中,策略模式是最基础的设计模式之一,简单地说,策略模式就是把可以替换的算法步骤封装成一个个算法族,供运行时动态选择。