package com.haizhitao.decorator;
public interface Component
{
public void doSomething();
}
package com.haizhitao.decorator;
public class ConcreteComponent implements Component
{
@Override
public void doSomething()
{
System.out.println("功能A");
}
}
package com.haizhitao.decorator;
public class Decorator implements Component
{
private Component component;
public Decorator(Component component)
{
this.component = component;
}
@Override
public void doSomething()
{
component.doSomething();
}
}
package com.haizhitao.decorator;
public class ConcreteDecorator1 extends Decorator
{
public ConcreteDecorator1(Component component)
{
super(component);
}
@Override
public void doSomething()
{
super.doSomething();
this.doAnotherthing();
}
private void doAnotherthing()
{
System.out.println("功能B");
}
}
package com.haizhitao.decorator;
public class ConcreteDecorator1 extends Decorator
{
public ConcreteDecorator1(Component component)
{
super(component);
}
@Override
public void doSomething()
{
super.doSomething();
this.doAnotherthing();
}
private void doAnotherthing()
{
System.out.println("功能B");
}
}
package com.haizhitao.decorator;
public class Client
{
public static void main(String[] args)
{
// Component component = new ConcreteComponent();
//
// ConcreteDecorator1 deco1 = new ConcreteDecorator1(component);
//
// ConcreteDecorator2 deco2 = new ConcreteDecorator2(deco1);
ConcreteDecorator2 deco2 = new ConcreteDecorator2(new ConcreteDecorator1(
new ConcreteComponent() ));
deco2.doSomething();
}
}
62
最新推荐文章于 2024-07-16 15:52:07 发布