zoukankan      html  css  js  c++  java
  • 2020-03-13

    庚子鼠年 己卯月 乙卯日

    描述

    享元模式学习,代理模式

    随笔

    享元模式

    ​ 又称为 轻量级模式,它是一种对象结构型模式。:缓存共享对象,降低内存消耗

    参考博客:https://baijiahao.baidu.com/s?id=1639843210271222415&wfr=spider&for=pc

    ​ 如果在一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必为每一次使用都创建新的对象。目的是提高系统性能。享元模式 是对象池的一种实现。类似于线程池,线程池可以避免不停的创建和销毁多个对象,消耗性能。享元模式 也是为了减少内存的使用,避免出现大量重复的创建销毁对象的场景。

    从上面这个例子我们可以看到,这里其实有四个角色:

    (1)享元工厂(Llibrary):用于创建具体享元类,维护相同的享元对象。当请求对象已经存在时,直接返回对象,不存在时,在创建对象。在例子中的解释就是图书馆,保存了所有的书,当学生借书时,有就拿走,没有买一本新书。这里面其实是使用了单例模式的。

    (2)抽象享元(Book):定义需要共享的对象业务接口。享元类被创建出来总是为了实现某些特定的业务逻辑.

    (3)具体享元(ConcreteBook):实现抽象享元类的接口,完成某一具体逻辑。在这里表示可以被借出。

    在这里享元工厂是享元模式的核心,它需要确保系统可以共享相同的对象。它会维护一个对象列表,当我们想要获取享元类时,如果请求的享元类已经被创建,则直接返回已有的享元类:若没有,则创建一个新的享元对象,并将它加入到维护队列中。

    第三步:享元工厂(Llibrary)-----参考博客

    img

    可以看出这个类是通过单例模式(饿汉试)创建的,通过map来记录创建的对象,判断这个对象有没有被创建或者被占用来决定是否创建新的对象。

    享元模式与单例模式的区别

    (1)享元设计模式是一个类有很多对象,而单例是一个类仅一个对象。

    (2)享元模式是为了节约内存空间,提升程序性能,而单例模式则主要是出于共享状态的目的。

    代理模式

    比想的简单,参考博客:https://www.jianshu.com/p/9cdcf4e5c27d

    java动态代理

    https://www.cnblogs.com/jie-y/p/10732347.html

  • 相关阅读:
    Android学习地址
    Android动画设计源码地址
    chromeWebBrowser之浏览器开发
    win8.1蓝屏解决
    打包应用程序
    win8.1解决鼠标右键反应慢的问题
    Rewrite服务器和robots文件屏蔽动态页面
    第08组 Alpha事后诸葛亮
    第08组 Alpha冲刺(6/6)
    第08组 Alpha冲刺(5/6)
  • 原文地址:https://www.cnblogs.com/chang1024/p/12489327.html
Copyright © 2011-2022 走看看