1.装饰模式即为已有的功能动态地添加功能的一种方式
2.装饰模式提供一个解决方案,把每个需要装饰的功能放在单独的类中,同时包装需要装饰的对象,客户端在运行时可以根据需要有选择的运行or不运行
abstract class design_Pattern_Decorator_Pattern_Commont
{
public abstract void design_Pattern_Decorator_Pattern_Method();
}
// 实现类,实现该方法
class design_Pattern_Decorator_Pattern_Commont_Extend extends design_Pattern_Decorator_Pattern_Commont
{
public void design_Pattern_Decorator_Pattern_Method()
{
System.out.println("design_Pattern_Decorator_Pattern_Method");
}
}
// 如果我们要在调用这个方法之前做标记,如System.out.println("Beginning the Decorator_Pattern");
// 新建抽象类,继承原类
abstract class design_Pattern_Decorator_Pattern_Decorator extends design_Pattern_Decorator_Pattern_Commont
{
private design_Pattern_Decorator_Pattern_Commont _design_Pattern_Decorator_Pattern = null;
public design_Pattern_Decorator_Pattern_Decorator(design_Pattern_Decorator_Pattern_Commont Par)
{
_design_Pattern_Decorator_Pattern = Par;
}
public void design_Pattern_Decorator_Pattern_Method()
{
_design_Pattern_Decorator_Pattern.design_Pattern_Decorator_Pattern_Method();
}
}
// 每需要新增加的方法,我们都放在新的类中,同时该类继承design_Pattern_Decorator_Pattern_Decorator
class design_Pattern_Decorator_Pattern_Decorator_Exe extends design_Pattern_Decorator_Pattern_Decorator
{
public design_Pattern_Decorator_Pattern_Decorator_Exe(design_Pattern_Decorator_Pattern_Commont Par)
{
super(Par);
}
public void design_Pattern_Decorator_Pattern_Decorator_Exe_re()
{
System.out.println("Beginning the Decorator_Pattern");
}
public void design_Pattern_Decorator_Pattern_Method()
{
design_Pattern_Decorator_Pattern_Decorator_Exe_re();
super.design_Pattern_Decorator_Pattern_Method();
}
}
// 客户端访问
class design_Pattern_Decorator_Pattern_Client
{
public void design_Pattern_Decorator_Pattern_Client_Test()
{
design_Pattern_Decorator_Pattern_Commont co = null;
// 最开始的方法
co = new design_Pattern_Decorator_Pattern_Commont_Extend();
// 在方法之前加入说明
co = new design_Pattern_Decorator_Pattern_Decorator_Exe(co);
co.design_Pattern_Decorator_Pattern_Method();
}
}