
今天看了装饰器模式有一些理解记录一下。调用过程的理解调用过程中一直压栈直到dress为空时开始出栈。核心思想是方法覆写和父类方法调用。抽象类public abstract class Dress{ protected Dress dress; public void setDress(Dress dress) { this.dress dress; } public void dress() { if(dress!null) { dress.dress(); } } }被装饰者public class Girl extends Dress{ Override public void dress() { super.dress(); System.out.println(衣服穿完了); } }装饰1public class OnePiece extends Dress { Override public void dress() { super.dress(); System.out.println(穿连衣裙); } }装饰2public class Jacket extends Dress{ public void dress() { super.dress(); System.out.println(穿夹克); } }public class Main { public static void main(String[] args) { Girl girl new Girl(); OnePiece one new OnePiece(); Jacket jacket new Jacket(); jacket.setDress(one); girl.setDress(jacket); girl.dress(); } }输出穿连衣裙 穿夹克 衣服穿完了