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();
        }
    }
  • 相关阅读:
    HDU 2795
    HDU 1394
    HDU 1754
    HDU 1166
    SDOI 2006
    HDU 1423
    HDU 1561
    centos7.4 搭建zabbix-server 3.4.5
    vim 简单笔记
    jdk环境并配置环境变量
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5609213.html
Copyright © 2011-2022 走看看