翻译自http://www.oodesign.com设计原则之开闭原则动机:一个聪明的应用设计和代码编写应该考虑到开发过程中的频繁修改代码。通常情况下,一个新功能的增加会带来很多的修改。这些修改已存在的代码应该要最小化,总结:软件应该对扩展开发,对修改关闭。装饰器模式,观察者模式..
分类:
其他好文 时间:
2016-09-18 10:26:39
阅读次数:
351
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 ...
分类:
其他好文 时间:
2016-09-06 15:25:57
阅读次数:
193
典型的装饰器模式类结构图: 其中各个角色描述如下: Component: 抽象组件接口,定义一组抽象的接口, 规定这个被装饰组件都有哪些功能. ConcreteComponent: 实现抽象组件对的所有功能 Decorator: 装饰器角色, 它持有一个Component实例对象的引用, 定义一个与 ...
分类:
其他好文 时间:
2016-08-31 13:48:16
阅读次数:
150
场景:我们对于需要大量计算的场景,希望将结果缓存起来,然后我们一起来实现一个缓存服务。即对于一个相同的输入,它的输出是不变的(也可以短时间不变)。 实现说明:这里实现采用GuavaCache+装饰器模式。 首先设计一个缓存服务接口。 这里定义了一个缓存服务接口,这里的key和Hashmap的key一 ...
分类:
其他好文 时间:
2016-08-24 06:31:50
阅读次数:
213
InputStreamReader: FilterInputStream 继承 InputStream 使其可以像InputStream一样被调用, 内部属性 in (组合的方式,使用InputStream,从而调用InputStream的方法),在此基础上进行附加操作的实现 BufferredIn ...
分类:
其他好文 时间:
2016-08-23 20:34:10
阅读次数:
398
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 ...
分类:
编程语言 时间:
2016-08-23 13:16:52
阅读次数:
152
一 装饰模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 主要解决:扩展一个类经常 ...
分类:
其他好文 时间:
2016-08-22 17:52:29
阅读次数:
135
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 ...
分类:
其他好文 时间:
2016-08-20 06:40:02
阅读次数:
109
装饰模式使用被装饰类的一个子类的实例,把客户端的调用委派到被装饰类,装饰模式的关键在于这种扩展是完全透明的。 /** * 装饰器模式,(装饰者和被装饰者的类型必须是一样的,拥有相同的超类或者相同的接口) */ public abstract class Beverage { protected St ...
分类:
其他好文 时间:
2016-08-19 11:23:31
阅读次数:
162