装饰模式
包装类的特点:
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();
}
}
网友评论