6.装饰设计模式

装饰模式

包装类的特点:

1.包装类和被包装类实现同样的接口
2.包装类持有一个被包装的对象
3.包装类在实现接口过程中,要对不包装的方法要原封不动的调用,对于已包装的方法要自己实现。

public interface Phone {
    void play();
}
public class NonSmartPhone implements Phone {
    @Override
    public void play() {
        System.out.println("仅仅可以打电话哦……");
    }
}

public class SmartPhone implements Phone{
    private NonSmartPhone nonSmartPhone;
    public SmartPhone(NonSmartPhone nonSmartPhone) {
        this.nonSmartPhone = nonSmartPhone;
    }

    @Override
    public void play() {

        System.out.println("智能手机可以上网!");
        nonSmartPhone.play();
        System.out.println("智能手机可以打游戏!");

    }

    public static void main(String[] args) {
        SmartPhone smartPhone = new SmartPhone(new NonSmartPhone());
        smartPhone.play();
    }
}

你可能感兴趣的:(6.装饰设计模式)