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

    作用:对已有的类型进行拓展

    abstract class Reader{
        public abstract void close();
    }
    
    class FileReader extends Reader{
        public void close(){
            System.out.println("FileReader closed!");
        }
    }
    
    //使用BufferedReader对FileReader扩展
    //1、装饰者模式中要求:装饰者中含有被装饰者的引用
    //2、装饰者模式中要求:装饰者和被装饰者应该实现同样的类型
    class BufferedReader extends Reader{ //装饰者
        
        FileReader fr = new FileReader();  //被装饰者
        
        public BufferedReader(FileReader fr){
            this.fr = fr;
        }
        
        
        //扩展
        public void close(){
            System.out.println("扩展代码1");
            fr.close();
            System.out.println("扩展代码2");
        }
    }
    
    
    public class Decorate {
    
        public static void main(String[] args) {
            //1、创建被装饰者
            FileReader fr = new FileReader();
            
            //2、创建装饰者
            BufferedReader br = new BufferedReader(fr);
            
            //3、通过执行装饰者中的方法间接去执行被装饰者中的方法
            br.close();
        }
    }
  • 相关阅读:
    酒店预定系统
    毕业论文管理系统 ——总体设计
    毕业论文管理系统
    毕业管理系统——面向对象方法 项目前期
    项目前期
    5/23用户故事和backlog
    5/18
    4.8
    4.3
    第四章 需求分析
  • 原文地址:https://www.cnblogs.com/StanLong/p/6987053.html
Copyright © 2011-2022 走看看