Java基础之装饰设计模式理解
装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能!
那么,自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象。
并基于被装饰的对象的功能,提供更强的功能。
装饰模式比继承要灵活,避免了继承体系的臃肿,而且降低了类与类之间的关系。
装饰类因为增强已有对象,具备的功能和已有的相同的,只不过提供了更强的功能。
所以装饰类和被装饰类通常都是属于同一个体系中。
MyReader // 专门用于读取数据的类
|--- MyTextReader //文本读取
|--- MyMediaReader //媒体读取
|--- MyDataReader //数据读取
|--- MyBufferReader //缓冲读取(装饰类,用于给MyTextReader、MyMediaReader、MyDataReader增强缓冲功能)
class MyReader
{
}
class MyTextReader extends MyReader
{
}
class MyMediaReader extends MyReader
{
}
class MyDataReader extends MyReader
{
}
class MyBufferedReader extends MyReader
{
private MyReader myReader = null;
public MyBufferedReader(MyReader myReader)
{
this.myReader = myReader;
}
//增加缓冲功能
}
{
}
class MyTextReader extends MyReader
{
}
class MyMediaReader extends MyReader
{
}
class MyDataReader extends MyReader
{
}
class MyBufferedReader extends MyReader
{
private MyReader myReader = null;
public MyBufferedReader(MyReader myReader)
{
this.myReader = myReader;
}
//增加缓冲功能
}