demo事例:用裝飾模式編寫(xiě)給人裝飾比如穿衣、庫(kù)、鞋等程序
Persion.java
/**
* 人
* @author Persion
*
*/
public class Persion {
private String name;
public Persion(){}
public Persion(String name){
this.name = name;
}
public void show(){
System.err.print("裝扮:"+name+" ");
}
}
Finery.java
public class Finery extends Persion{
protected Persion persion;
public void Decorate(Persion persion){
this.persion=persion;
}
public void show(){
if(persion != null){
persion.show();
}
}
}
BigTrouser .java
public class BigTrouser extends Finery {
@Override
public void show(){
System.out.print("褲子 ");
persion.show();
}
}
TShrts .java
public class TShrts extends Finery{
@Override
public void show(){
System.out.print("大T恤 ");
persion.show();
}
}
Test .java
/**
* 裝飾模式
* @author lucksheep
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Persion persion=new Persion("小肥羊");
TShrts shrts=new TShrts();
BigTrouser bt=new BigTrouser();
shrts.Decorate(persion);
bt.Decorate(shrts);
bt.show();
}
}
裝飾模式總結(jié)下:
1、一般呢就是把類(lèi)中的裝飾功能搬移出去,簡(jiǎn)化原有的類(lèi)。
2、有效的把類(lèi)的核心職責(zé)和裝飾的功能分開(kāi),并且可以去除相關(guān)類(lèi)中重復(fù)的裝飾邏輯