【JAVA设计模式】装饰模式

UML类图:

【JAVA设计模式】装饰模式

被装饰对象:

package com.jthao.design.des.decorator;

public class Person {

	public Person() {

	}

	private String name;

	public Person(String name) {
		this.name = name;
	}

	public void show() {
		System.out.println("打扮好的" + name);
	}
}

装饰抽象类:

package com.jthao.design.des.decorator;

public class Person {

	public Person() {

	}

	private String name;

	public Person(String name) {
		this.name = name;
	}

	public void show() {
		System.out.println("打扮好的" + name);
	}
}

具体装饰对象A:

package com.jthao.design.des.decorator;

public class Tie extends Finery {

	public void show() {
		System.out.println("领带");
		super.show();
	}
}

具体装饰对象B:

package com.jthao.design.des.decorator;

public class TShirts extends Finery {

	public void show() {
		System.out.println("T恤");
		super.show();
	}
}

测试类:

package com.jthao.design.des.decorator;

public class DecoratorTest {

	public static void main(String[] args) {
		Person person = new Person("小明");
		TShirts tShirts = new TShirts();
		Tie tie = new Tie();
		tShirts.decorate(person);
		tie.decorate(tShirts);
		tie.show();
	}

}