• 模块【其他模式】


    模块

    public class Module {
        /**
         * Module pattern:统一管理功能相关组件的创建、使用和销毁
         */
        @Test
        public void all() throws FileNotFoundException {
            final FileLogModule logModule = FileLogModule.getSingleton();
            logModule.prepare();
            logModule.print("hello");
            logModule.error("error");
            logModule.finish();
        }
    }
    
    class FileLogModule{
        private FileLogModule() {
        }
        private static final FileLogModule INSTANCE = new FileLogModule();
        private static final String OUTPUT_FILE = "output.txt";
        private static final String ERROR_FILE = "error.txt";
        private PrintStream output;
        private PrintStream error;
    
        public static FileLogModule getSingleton() {
            return INSTANCE;
        }
    
        public void prepare() throws FileNotFoundException {
            output = new PrintStream(new FileOutputStream(OUTPUT_FILE));
            error = new PrintStream(new FileOutputStream(ERROR_FILE));
        }
    
        public void print(String message) {
            output.println(message);
        }
    
        public void error(String message) {
            error.println(message);
        }
    
        public void finish() {
            flushClose(output);
            flushClose(error);
        }
    
        private void flushClose(PrintStream stream) {
            Optional.ofNullable(stream).ifPresent(s -> {
                s.flush();
                s.close();
            });
        }
    }
    
  • 相关阅读:
    Mysql查漏补缺
    RabbitMQ学习笔记
    memcache学习笔记
    Redis问题整理
    JedisCluster获取key所在的节点
    JavaSE编程题
    IDEA快捷键 日常整理
    Idea 常用快捷键列表
    【C++】 构造函数为什么不能声明为虚函数,析构函数可以
    【算法笔记】买卖股票问题--DP/贪心算法
  • 原文地址:https://www.cnblogs.com/zhuxudong/p/10223814.html
Copyright © 2020-2023  润新知