大话设计模式-----装饰模式

1、思想

动态的给对象添加一些额外的职责。例如为一个人穿T恤、球鞋等,人是对象,每个服饰便是一种职责,一层一层的为人添加服饰。

2、代码结构图


3、代码

class Person{
private String name;
public Person(String name){
this.name = name;

}
public void show(){
System.out.println("装扮的"+name);
}
}
//服饰类
class Finery extends Person{
public Person component;
public void decorate(Person component){
this.component = component;
}
public void show(){
if(component != null){
component.show();
}
}
}
//T恤类
class TShrits extends Finery{
public void show(){
System.out.println("T恤");
super.show();

}
}
//裤子类
class Trouser extends Finery{
public void show(){
System.out.println("裤子");
super.show();

}
}


public class Main {
public static void main(String [] args){
Person person = new Person("小菜");
TShirt ts = new TShirt();
Trouser tr = new Trouser(ts);
ts.decorate(person);
tr.decorate(ts);
tr.show();

}


}

猜你喜欢

转载自blog.csdn.net/g1607058603/article/details/80770701