设计模式之享元模式
来源:互联网 发布:zz高达知乎 编辑:程序博客网 时间:2024/05/10 02:41
享元模式,即共享元素对象,他的目的就是为了避免大量的创建对象,复用已经创建好的对象,从而节省内存的的开销,提升了系统的性能。他的核心思路是的将一个对象存储在map集合里面,当调用这个方法时候从集合中获取,如果没有就创建再返回,如果有直接复用此对象。例如线程池、数据库连接池、字符串等此设计模式比较简单,下面直接贴代码。
1、创建享元接口
public interface Flyweight { void setColor(int id);}2、具体的享元实现对象,内部需要封装Flyweight的内部状态,必须是共享的。
public class ConcreteChess implements Flyweight { private String color; public ConcreteChess(String color) { this.color =color; } @Override public void setColor(int id) { System.out.println("id:"+id+"-------"+"color:"+color); }}3、享元工厂类,核心类
public class FlyWeightFactory { //创建享元池,保存对象 private static HashMap<String,Flyweight> map = new HashMap<>(); public Flyweight getFlyweight(String color){ if (map.get(color)!=null) { Flyweight flyweight = map.get(color); return flyweight; } else { ConcreteChess flyweight = new ConcreteChess(color); map.put(color,flyweight); return flyweight; } }}4、测试类
public class MyClass { public static void main(String[] args){ FlyWeightFactory flyWeightFactory = new FlyWeightFactory(); Flyweight red = flyWeightFactory.getFlyweight("red"); red.setColor(1); Flyweight blue = flyWeightFactory.getFlyweight("blue"); blue.setColor(2); Flyweight yello = flyWeightFactory.getFlyweight("yello"); yello.setColor(3); }}运行结果如下:
id:1-------color:red
id:2-------color:blue
id:3-------color:yello
0 0
- 设计模式之享元
- 设计模式之享元
- 设计模式 之 享元
- 设计模式之享元
- 设计模式之享元
- 设计模式之Flyweight享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- java设计模式之享元模式
- 【设计模式】之 Flyweight享元模式
- 设计模式之享元模式
- c++设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- ip首部解析
- hibernate注解的CascadeType属性
- linux tomcat安装01
- Geoip MaxMind DB 生成指南
- 入冬后学会穿羽绒服才是时尚之道,女星都这么穿!
- 设计模式之享元模式
- 49. Group Anagrams
- CentOS7安装
- Storm编程之wordcount(kafka--》Jstorm--》redis)
- LINUX 命令一 帮助命令 解压命令 文件命令 安装命令
- tableView手势冲突的解决方案
- C#调用C++编写的DLL函数各种参数传递问题
- Android OnTouchEvent和OnClick、OnLongClick、OnTouch、TouchDelegate关系
- 径向基函数(RBF)