装饰设计模式:想要对已有的对象进行功能增强时,可以定义类将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类就是装饰类。
装饰类一般会通过构造函数接收被装饰的对象。并基于被装饰对象的功能提供更强的功能。
相对于继承,装饰类更灵活,避免了继承体系的臃肿。而且降低了类于类之间的关系。
代码示例:
继承示例:
class Animao()
{
void method()
{}
}
class mouse() extends Animal
{}
class Dog() extends Animal
{}
...............(代码比较臃肿)
装饰示例:
class Tanimal()
{
private Animal a;(可以传dog也可以传Mouse)
public void method(Animal a)
{
}
}(降低类与类之间的关系)
而封装模式就是把一些代码封装起来,提高代码的复用性,比如经常用到的类,和类中的方法都属于封装模式。
而你说的:IO流中的作为缓冲区之类的类就是封装模式中的一种。 |