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

    package com.decorate;
    
    public class Iphone implements Phone{
    
        @Override
        public void call() {
            System.out.println("手机可以打电话");
        }
    
    
    }
    package com.decorate;
    
    public interface Phone{
        public void call();//打电话
    }
    package com.decorate;
    
    public abstract class PhoneDecorate implements Phone{
        private Phone p;
        
        public PhoneDecorate(Phone p){
            this.p=p;
        }
        @Override
        public void call() {
            this.p.call();
        }
    }
    package com.decorate;
    
    public class MusicPhoneDecorate extends PhoneDecorate {
    
        public MusicPhoneDecorate(Phone p) {
            super(p);
        }
        @Override
        public void call() {
            super.call();
            System.out.println("手机可以听音乐");
        }
    
    }
    package com.decorate;
    
    public class RingPhoneDecorate extends PhoneDecorate {
    
        public RingPhoneDecorate(Phone p) {
            super(p);
        }
        
        @Override
        public void call() {
            System.out.println("手机可以听彩铃");
            super.call();
        }
    
    }
    package com.decorate;
    
    public class PhoneDemo {
        public static void main(String[] args) {
            Iphone iphone=new Iphone();
            iphone.call();
            System.out.println("---");
            //接电话前听彩铃
            PhoneDecorate pd=new RingPhoneDecorate(iphone);
            pd.call();
            System.out.println();
            //接电话后听音乐
            pd=new MusicPhoneDecorate(iphone);
            pd.call();
            System.out.println("-----");
            //手机在接听前听彩铃,接听后听音乐
            pd=new MusicPhoneDecorate(new RingPhoneDecorate(iphone));
            pd.call();
        }
    }
  • 相关阅读:
    web测试方法总结
    APP测试点总结
    函数初识
    字符编码及文件操作
    简单购物车程序(Python)
    基本数据类型(列表,元祖,字典,集合)
    python基础
    基本数据类型(数字和字符串)
    Python入门
    操作系统
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5609213.html
Copyright © 2011-2022 走看看