大话设计模式-----装饰模式
1、思想
动态的给对象添加一些额外的职责。例如为一个人穿T恤、球鞋等,人是对象,每个服饰便是一种职责,一层一层的为人添加服饰。
2、代码结构图
3、代码
package 测试;
class Person {
private String name;
public Person(String name) {
this.name = name;
}
public Person() {
}
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 Main2 {
public static void main(String[] args) {
Person person = new Person("小菜");
TShrits ts = new TShrits();
Trouser tr = new Trouser();
ts.decorate(person);
tr.decorate(ts);
tr.show();
}
}
运行结果:
裤子
T恤
装扮的小菜