Flyweight 享元模式

Flyweight 享元模式

目录

[TOC]

1. 概述

1.1. 自我理解

(1)我们现在要缓存一些数据,比如说用户列表,根据权限的姓名作为key,用户数据自己本身是value
(2)但是我们不需要使用太复杂的ehcache框架之类的去使用,特别特别的简单的。
(3)我们就想基于自己的Map去实现一套东西

1.2. 享元模式的组成

抽象享元(Flyweight)角色 :父接口,以规定出所有具体享元角色需要实现的方法。
具体享元(ConcreteFlyweight)角色:实现抽象享元角色所规定出的接口。
享元工厂(FlyweightFactory)角色 :本角色负责创建和管理享元角色。本角色必须保证享元对象可以被系统适当地共享。当一个客户端对象调用一个享元对象的时候,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象。如果已经有了,享元工厂角色就应当提供这个已有的享元对象;如果系统中没有一个适当的享元对象的话,享元工厂角色就应当创建一个合适的享元对象。

2. UML

3. Example

3.1. 场景

项目初始化时,有些菜单权限、地图、等热数据,这些数据没有更新操作,那么直接加载至内存,避免每次查询数据库。

3.2. 代码实现

原创文章,转载请注明: 转载自LoserZhao – 诗和远方[ http://www.loserzhao.com/ ]

本文链接地址: http://www.loserzhao.com/java/designpattern/flyweight-designpattern.html

文章的脚注信息由WordPress的wp-posturl插件自动生成

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

使用新浪微博登陆