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

    模式介绍

    享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。

    模式优点

    1、大大减少对象的创建,降低系统的内存,使效率提高。

    模式缺点

    1、提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固有化的性质,不应该随着内部状态的变化而变化,否则会造成系统的混乱。

    使用场景

    1、系统有大量相似对象。
    2、需要缓冲池的场景。

    系统建模

    1、网站外包,网站的发布形式有多种且具有固有化的性质。

    系统实现

    /**
     * 网站抽象类
     */
    public abstract class WebSite {
        public abstract void use();
    }
    
    /**
     * 网站实例
     */
    public class ConcreteWebSit extends WebSite {
        private String webType = "";
    
        public ConcreteWebSit(String type){
            this.webType = type;
        }
    
        @Override
        public void use() {
            System.out.println("网站的样式是:" + webType);
        }
    }   
    
    /**
     * 网站工厂
     */
    public class WebSitFactory {
        private static HashMap<String, WebSite> pool = new HashMap<>();
    
        public static WebSite getWebSit(String webSitType){
            if (!pool.containsKey(webSitType)) {
                WebSite webSite = new ConcreteWebSit(webSitType);
                pool.put(webSitType, webSite);
                return webSite;
            } else {
                return pool.get(webSitType);
            }
        }
    }
    
    /**
     * 客户端
     */
    public class Client {
        public static void main(String args[]){
            String webType1 = "清洁版";
            String webType2 = "高清版";
            WebSite webSite1 = WebSitFactory.getWebSit(webType1);
            WebSite webSite2 = WebSitFactory.getWebSit(webType2);
            webSite1.use();
            webSite2.use();
        }
    }
    结果:
    网站的样式是:清洁版
    网站的样式是:高清版
    
  • 相关阅读:
    re模块的split(),sub()方法 新发现
    tf.where()&np.random.RandomState.rand()&np.vstack&np.mgrid .ravel np.c_[]
    Embedding实现1pre1
    tf.keras训练iris数据集
    tf.keras 搭建神经网络六部法
    循环计算过程(4pre1)
    池化(pooling)舍弃(dropout)& 卷积神经网络
    [C]gcc编译器的一些常用语法
    [POSIX]文件系统(概述)
    [Linux]PHP-FPM与NGINX的两种通讯方式
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/12208788.html
Copyright © 2011-2022 走看看