zoukankan      html  css  js  c++  java
  • 设计模式-享元模式

    享元模式:运用共享技术有效的支持大量细粒度的对象

    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;
    
    /**
     * 享元模式
     */
    public class FlyWeightTest {
        public static void main(String[] args) {
            TreeNode treeNode1 = new TreeNode(3, 4, TreeFactory.getTree("xxx", "xxxxxxxx"));
            TreeNode treeNode2 = new TreeNode(5, 4, TreeFactory.getTree("xxx", "xxxxxxxx"));
    
            TreeNode treeNode3 = new TreeNode(32, 41, TreeFactory.getTree("yyy", "xxxxxxxx"));
            TreeNode treeNode4 = new TreeNode(53, 44, TreeFactory.getTree("yyy", "xxxxxxxx"));
    
        }
    
    }
    
    class Tree{
        private final String name;
        private final String data;
    
        public Tree(String name, String data) {
            System.out.println("name:" + name + "data" + data);
            this.name = name;
            this.data = data;
        }
    
        public String getName() {
            return name;
        }
    
        public String getData() {
            return data;
        }
    }
    
    class TreeNode{
        private int x;
        private int y;
        private Tree tree;
    
        public TreeNode(int x, int y, Tree tree) {
            this.x = x;
            this.y = y;
            this.tree = tree;
        }
    
    
    }
    
    class TreeFactory{
        private static Map<String,Tree> map = new ConcurrentHashMap<>();
    
        public static Tree getTree(String name, String data){
            if (map.containsKey(name)){
                return map.get(name);
            }
            Tree tree = new Tree(name, data);
            map.put(name,tree);
            return tree;
        }
    }
  • 相关阅读:
    协议
    创建属性、属性标签、对象序列化
    JS中generater和箭头函数
    前端forEach在Array、map、set中的使用,weakset,weakmap
    更新最大内码,金蝶开发
    ERP,还需要WEB开发吗
    可读性太低的SQL语句
    事务,视图和索引
    简单子查询
    创建表并添加约束
  • 原文地址:https://www.cnblogs.com/chenfx/p/14787559.html
Copyright © 2011-2022 走看看