????Decorator?????????"???"??????÷????"????"???????????(decorator)????????????????????????????????decoratee?????????????Decorator???????????
????Decorator???壺????????????????Щ???????????????????????Decorator??????????????????????????????????
??????????Decorator
?????????????????ü?????????????????????Щ????????????????????????????????????????????????????????ü??????????????????????????Щ??????????Щ???????????????????????
???????Decorator???????????Щ?????????????????????????????????Decorator????"???弴??"?????????????????????????????????
???????????????
??????Adapter?е??????????Adapter??????????????? ??????Adapter???????????????????????Decorator???У??????????????????Щ??????????磬??? ???????????????????????????????????
????????????????????
????public interface Work{
????public void insert();
????}
???????Work???????????????????????????????????????Decorator??????ν???????????????????
????public class SquarePeg implements Work{
????public void insert(){
????System.out.println("?????????");
????}
????}
????????????????????????????????????????????????壬??Щ????????????????????????????????????磬????????????????????(??????)??
??????????????Decorator???????????SquarePeg??decoratee(?????????)???????????decoratee???Щ"????"????Щ????????Щ?????????
public class Decorator implements Work{
private Work work;
//?????????????????????List??
private ArrayList others = new ArrayList();
//???????????????new?????????Work????;
public Decorator(Work work){
this.work=work;
others.add("???");
others.add("?????");
}
public void insert(){
newMethod();
}
//???·????У???????insert???????????????????????????????????????
public void newMethod(){
otherMethod();
work.insert();
}
public void otherMethod(){
ListIterator listIterator = others.listIterator();
while (listIterator.hasNext()){
System.out.println(((String)(listIterator.next())) + " ???????");
}
}
}
???????????У?????????????嶼????????insert??棬????????????????????????????????