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

    享元模式可以理解是一个对象的缓存,通过构建一个享元工厂对所有的对象进行管理。

    代码如下:

    • Flyweight 享元的接口
    public interface Flyweight {
        public void doAction();
    }
    • FlyweightImpl 具体被共享的类实现
    public class FlyweightImpl implements Flyweight{
    
        @Override
        public void doAction() {
            System.out.println("doAction");
        }
    }
    • FlyweightFactory 享元工厂
    public class FlyweightFactory {
    
        private static Map<String, Flyweight> flyweights 
            = new HashMap<String, Flyweight>();
    
        public static Flyweight getFlyweight(String key) {
            if (flyweights.get(key) == null) {
                flyweights.put(key, new FlyweightImpl());
            }
            return (Flyweight) flyweights.get(key);
        }
    
        public static int getSize() {
            return flyweights.size();
        }
    }
    • APP 测试类
    public class App {
    
        public static void main(String[] args) {
            FlyweightFactory factory = new FlyweightFactory();
            factory.getFlyweight("a").doAction();
            factory.getFlyweight("b").doAction();
            factory.getFlyweight("a").doAction();
            
            System.out.println(factory.getSize());
        }
    }
    • 输出结果
    doAction
    doAction
    doAction
    2
  • 相关阅读:
    Docker GitLab镜像部署
    Kubernetes集群部署之三ETCD集群部署
    Kubernetes集群部署之二CA证书制作
    Kubernetes集群部署之一系统环境初始化
    docker开源仓库Harbor部署笔记
    git分支
    git高清技能图
    vue+uwsgi+nginx部署路飞学城
    git基础
    git安装与初始化
  • 原文地址:https://www.cnblogs.com/Fredric-2013/p/4572937.html
Copyright © 2011-2022 走看看