装饰器模式
是在不改变原类文件和不使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
代码实例:
下面展示 装饰器模式简单代码段
。
package com.haina.java05;
//通用父类
public interface HW {public void show();
}package com.haina.java05;//装饰者父类
public class HWFactory implements HW {public HW hw;public HWFactory(HW hw) {this.hw = hw;}@Overridepublic void show() {hw.show();}
}package com.haina.java05;//被装饰者
public class HWPhone implements HW {@Overridepublic void show() {System.out.print("我是一个华为手机");}
}//添加具体功能类
package com.haina.java05;public class HWPK extends HWFactory{public HWPK(HW hw) {super(hw);}@Overridepublic void show() {hw.show();System.out.print("添加一个手机壳");}
}package com.haina.java05;public class HWPE extends HWFactory{public HWPE(HW hw) {super(hw);}@Overridepublic void show() {hw.show();System.out.print("又添加一个耳机");}
}package com.haina.java05;
//测试类
public class Test {public static void main(String[] args) {HWPhone hwPhone=new HWPhone();hwPhone.show();System.out.println();HWPK hwpk=new HWPK(hwPhone);hwpk.show();System.out.println();HWPE hwpe=new HWPE(hwpk);hwpe.show();System.out.println();}
}
输出结果为: