照例大话设计模式的例子,用java模仿了一遍,代码如下:
1.person类
public class Person {
public Person() {
}// 构造函数
private String name;
public Person(String name) {
this.name = name;
}
public void show() {
System.out.print("装扮的" + name);
}
}
2.装饰类
public class Decorator extends Person {
protected Person component;
//打扮
public void decorate(Person component){
this.component=component;
}
public void show(){
if(component!=null){
component.show();
}
}
}
3.具体服饰类
class TShirt extends Decorator{
public void show(){
System.out.print("大T恤 ");
super.show();
}
}
class BigTrouser extends Decorator{
public void show(){
System.out.print("垮裤 ");
super.show();
}
}
class Sneakers extends Decorator{
public void show(){
System.out.print("破球鞋 ");
super.show();
}
}
class Suit extends Decorator{
public void show(){
System.out.print("西装 ");
super.show();
}
}
class Tie extends Decorator{
public void show(){
System.out.print("领带 ");
super.show();
}
}
class LeatherShoes extends Decorator{
public void show(){
System.out.print("皮鞋 ");
super.show();
}
}
4.客户端
public class Client {
public static void main(String[] args) {
Person xc = new Person("小菜");
System.out.println("第一种装扮:");
TShirt dtx = new TShirt();
BigTrouser kk = new BigTrouser();
Sneakers pqx = new Sneakers();
dtx.decorate(xc);
kk.decorate(dtx);
pqx.decorate(kk);
pqx.show();
}
}