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

    1. 享元模式的介绍

    享元模式是对象池的一种实现,英文名为Flyweight,代表轻量级的意思。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,来缓存可共享的对象,达到对象共享、避免创建过多对象的效果,这样一来就可以提升性能、避免内存移除等。
    享元模式的部分状态是可以共享,可以共享的状态成为内部状态,内部状态不会随着环境变化;不可共享的状态则称之为外部状态;他们随着环境的改变而改变。在享元模式中会建立一个对象容器,在经典的享元模式中该容器为一个Map,健值就是享元对象的内部状态,它的值就是享元对象本身。客户端程序通过这个内部状态从享元工厂中获取享元对象,如果有缓存则使用缓存对象,否则创建一个享元对象并且存入容器中,这样一来就避免了穿件过多对象的问题

    2.享元模式定义

    使用共享对象可有效地支持大量的细粒度的对象。

    3.使用场景

    • 系统中存在大量相似对象。
    • 溪洛渡的对象都具备较接近的外部状态,而且外部状态与环境无关,也就是说对象没有特定身份
    • 需要缓冲池的场景
  • 相关阅读:
    leetcode122
    leetcode121
    leetcode773
    leetcode803
    leetcode658
    leetcode723
    leetcode134
    leetcode340
    leetcode721
    leetcode362
  • 原文地址:https://www.cnblogs.com/zhousysu/p/5483774.html
Copyright © 2011-2022 走看看