装饰器模式
是在不改变原类文件和不使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
代码实例:
下面展示 装饰器模式简单代码段
。
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;
}
@Override
public void show() {
hw.show();
}
}
package com.haina.java05;
//被装饰者
public class HWPhone implements HW {
@Override
public void show() {
System.out.print("我是一个华为手机");
}
}
//添加具体功能类
package com.haina.java05;
public class HWPK extends HWFactory{
public HWPK(HW hw) {
super(hw);
}
@Override
public void show() {
hw.show();
System.out.print("添加一个手机壳");
}
}
package com.haina.java05;
public class HWPE extends HWFactory{
public HWPE(HW hw) {
super(hw);
}
@Override
public 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();
}
}
输出结果为: