zoukankan      html  css  js  c++  java
  • 设计模式装饰模式

    类图

     

    源码

    CellPhone.java
    package decoratorPattern;
    
    public abstract  class CellPhone {
        public abstract void receiveCall();
    }
    
    ComplexPhone.java
    package decoratorPattern;
    
    public class ComplexPhone extends PhoneDecorator{
    
        public ComplexPhone(CellPhone phone) {
            super(phone);
        }
        public void receiveCall() {
            super.receiveCall();
            System.out.println("灯光闪烁提示");
        }
    
    }
    
    JarPhone.java
    package decoratorPattern;
    
    public class PhoneDecorator extends CellPhone{
    
        private CellPhone phone=null;
    
         public PhoneDecorator(CellPhone phone) {
             if(phone!=null){
                 this.phone = phone;
             }else{
                 this.phone = new SimplePhone();
             }
         }
        @Override
        public void receiveCall() {
                phone.receiveCall();
        }
    
    }
    
    SimplePhone.java
    package decoratorPattern;
    
    public class SimplePhone  extends CellPhone{
        @Override
        public void receiveCall() {
            System.out.println("声音提示");
        }
    }
    
    PhoneDecorator.java
    package decoratorPattern;
    
    public class PhoneDecorator extends CellPhone{
    
        private CellPhone phone=null;
    
         public PhoneDecorator(CellPhone phone) {
             if(phone!=null){
                 this.phone = phone;
             }else{
                 this.phone = new SimplePhone();
             }
         }
        @Override
        public void receiveCall() {
                phone.receiveCall();
        }
    
    }
    
    Client.java
    package decoratorPattern;
    
    public class Client {
    
        public static void main(String a[]){
            CellPhone p1 = new SimplePhone();
            p1.receiveCall();
            System.out.println();
            CellPhone p2 = new JarPhone(p1);
            p2.receiveCall();
            System.out.println();
            CellPhone p3 = new ComplexPhone(p2);
            p3.receiveCall();
        }
    }

    测试截图

     

     

  • 相关阅读:
    mysql dump 完全备
    CentOS7位安装MySql教程
    mysql 数据备份
    Linux下iostat命令详解
    端口映射
    git+jenkins jar包代码的发布加新建项目
    腾讯面试题
    PHP-----类与对象,成员方法,成员属性,构造方法,析构方法
    PHP-----二维数组和二分查找
    PHP-----数组和常见排序算法
  • 原文地址:https://www.cnblogs.com/lx06/p/15688427.html
Copyright © 2011-2022 走看看