2024.12.7

 

public interface Phone  

{  

    public void ring();  

}  

   

public final class SimplePhone implements Phone  

{  

    public SimplePhone()  

    {  

        System.out.println("一部SimplePhone");  

    }  

   

    @Override  

    public void ring()  

    {  

        System.out.println("声音提醒");  

    }  

}  

   

public class JarPhone extends PhoneDecorator  

{  

    public JarPhone(Phone phone)  

    {  

        super(phone);  

        System.out.println("一部JarPhone");  

    }  

   

    public void shake()  

    {  

        System.out.println("震动提醒");  

    }  

}  

   

public class ComplexPhone extends PhoneDecorator  

{  

    public ComplexPhone(Phone phone)  

    {  

        super(phone);  

        System.out.println("一部ComplexPhone");  

    }  

   

    public void shake()  

    {  

        System.out.println("震动提醒");  

    }  

   

    public void shine()  

    {  

        System.out.println("闪烁提醒");  

    }  

}  

   

public class PhoneDecorator implements Phone  

{  

    private Phone phone;  

   

    public PhoneDecorator(Phone phone)  

    {  

        this.phone = phone;  

    }  

   

    @Override  

    public void ring()  

    {  

        phone.ring();  

    }  

}  

   

public class Main  

{  

    public static void main(String[] args)  

    {  

        Phone phone;  

        phone = new SimplePhone();  

        phone.ring();  

        System.out.println("-------------");  

   

        JarPhone jarPhone = new JarPhone(phone);  

        jarPhone.ring();  

        jarPhone.shake();  

        System.out.println("-------------");  

   

        ComplexPhone complexPhone = new ComplexPhone(phone);  

        complexPhone.ring();  

        complexPhone.shake();  

        complexPhone.shine();  

    }  

}

posted @ 2024-12-07 09:21  kuku睡  阅读(6)  评论(0)    收藏  举报