zoukankan      html  css  js  c++  java
  • 装饰模式——java实现

    问题描述:

    用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而JarPhone除了声音还能振动;更高级的手机(ComplexPhone)除了声音、振动外,还有灯光闪烁提示。

    类图:

    Java源代码:

    //Phone.java
    package shiyan11;
    
    public interface  Phone {
            public void call();
    } 
    //SimplePhone.java
    package shiyan11;
    
    public class SimplePhone implements Phone{
        public SimplePhone(){
            System.out.println("手机收到来电");
        }
        public void call(){
            System.out.println("发出声音:主人来电话啦!");
        }
    } 
    //UpgradePhone.java
    package shiyan11;
    
    public class UpgradePhone implements Phone{
        private Phone phone;
        public UpgradePhone(Phone a){
            phone=a;
        }
        public void call(){
            phone.call();
        }
    } 
    //JarPhone.java
    package shiyan11;
    
    public class JarPhone extends UpgradePhone{
        public JarPhone(Phone phone){
            super(phone);
            System.out.println("***增加振动的功能***");
        }
        public void shoke(){
            System.out.println("振动:嗡嗡嗡");
        }
    } 
    //ComplexPhone.java
    package shiyan11;
    public class ComplexPhone extends UpgradePhone{
        public ComplexPhone(Phone phone){
            super(phone);
            System.out.println("***增加闪光功能***");
        }
        public void light(){
            System.out.println("灯光闪烁:咔嚓");
        }
    } 

    java运行结果:

     

  • 相关阅读:
    JQuery之在线引用
    SpringBoot之durid连接池配置
    VueJs之事件处理器
    VueJs之样式绑定
    VueJs之判断与循环监听
    PTA 7-8 暴力小学(二年级篇)-求出4个数字 (10分)
    PTA 7-7 交替字符倒三角形 (10分)
    PTA 7-5 阶乘和 (10分)
    PTA 7-4 哥德巴赫猜想 (10分)
    PTA 7-3 可逆素数 (15分)
  • 原文地址:https://www.cnblogs.com/znjy/p/14138425.html
Copyright © 2011-2022 走看看