代码实例
public abstract class PhoneDecorate implements Phone {
// 以组合的方式来获取默认实现类
private Phone phone;
public PhoneDecorate(Phone phone) {
this.phone = phone;
}
public void call() {
phone.call();
}
}
public class MusicPhone extends PhoneDecorate {
public MusicPhone(Phone phone) {
super(phone);
}
public void listenMusic(){
System.out.println("play music.....");
}
@Override
public void call(){
listenMusic();
super.call();
}
}
public class TestMain {
public static void main(String[] args) {
Phone musicPhone = new MusicPhone(new IphoneX());
musicPhone.call();
Phone timePhone = new ReportTimePhone(new MusicPhone(new IphoneX()));
timePhone.call();
}
}