
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
昆明达内的小编发现,当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能,那么自定义的该类可以成为装饰类。
例如
BufferedReader中的读取一行:readLine();
装饰类通常会通过构造方法接受被装饰的对象,并基于被装饰的对象的功能,提供更强的功能。
装饰模式比继承要灵活,避免了集成体系的臃肿,而且降低了类与类之间关系。
装饰类因为增强已有对象,具备的功能和已有的功能是相同的,只不过提供了更强的功能,所以装饰类和被装饰类通常都属于同一
个体系中。
/**
*装饰设计模式
* @author Administrator
*
*/
public class BufferedReaderDemo02 {
public static void main(String[] arsg)
{
SuperCar sc = new SuperCar(new Car());
sc.superRun();
}
}
class Car
{
public void run()
{
System.out.println("启动");
}
}
class SuperCar
{
private Car c;
public SuperCar(Car c)
{
this.c = c;
}
public void superRun()
{
System.out.println("无钥匙进入");
c.run();
}
}
了解详情请登陆昆明达内IT培训官网(km.tedu.cn)!