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();
        }
    }
  • 相关阅读:
    文本字符集转换
    添加HP消息队列
    fedora19/opensuse13.1 配置svn client
    前端html---介绍前端,标签,列表
    数据分析1
    项目流程
    git 使用
    mongo基础
    linux上面pycharm汉化
    pythonNet 09协程
  • 原文地址:https://www.cnblogs.com/StanLong/p/6987053.html
Copyright © 2011-2022 走看看