设计模式-11-享元模式
2017-07-28 00:40
190 查看
享元模式:主要用于减少创建对象的数量,以减少内存的占用和提高性能。
享元模式的核心在于享元工厂类,享元工厂类的作用在于提供一个用于存储享元对象的享元池,用户需要对象时,首先从享元池中获取,如果享元池中不存在,则创建一个新的享元对象返回给用户,并在享元池中保存该新增对象。
享元模式的核心在于享元工厂类,享元工厂类的作用在于提供一个用于存储享元对象的享元池,用户需要对象时,首先从享元池中获取,如果享元池中不存在,则创建一个新的享元对象返回给用户,并在享元池中保存该新增对象。
package com.structuralPattern.enjoy_yuan.edition1; public abstract class Shape { public abstract void draw(); }
package com.structuralPattern.enjoy_yuan.edition1; public class Circle extends Shape{ private String color; public Circle(String color){ this.color = color; } public void draw() { System.out.println("画了一个" + color +"的圆形"); } }
package com.structuralPattern.enjoy_yuan.edition1; import java.util.HashMap; import java.util.Map; public class FlyweightFactory{ static Map<String, Shape> shapes = new HashMap<String, Shape>(); public static Shape getShape(String key){ Shape shape = shapes.get(key); //如果shape==null,表示不存在,则新建,并且保持到共享池中 if(shape == null){ shape = new Circle(key); shapes.put(key, shape); } return shape; } public static int getSum(){ return shapes.size(); } }
package com.structuralPattern.enjoy_yuan.edition1; public class Client { public static void main(String[] args) { Shape shape1 = FlyweightFactory.getShape("红色"); shape1.draw(); Shape shape2 = FlyweightFactory.getShape("灰色"); shape2.draw(); Shape shape3 = FlyweightFactory.getShape("绿色"); shape3.draw(); Shape shape4 = FlyweightFactory.getShape("红色"); shape4.draw(); Shape shape5 = FlyweightFactory.getShape("灰色"); shape5.draw(); Shape shape6 = FlyweightFactory.getShape("灰色"); shape6.draw(); System.out.println("一共绘制了"+FlyweightFactory.getSum()+"中颜色的圆形"); } }
相关文章推荐
- 【设计模式】—-(11)享元模式(结构型)
- 23种设计模式11---享元模式
- 设计模式(11)--Flyweight(享元模式)--结构型
- 11.java设计模式(读书笔记)享元模式
- java设计模式之享元模式(11)
- Java设计模式11——享元模式
- 【设计模式 - 11】之享元模式(FlyWeight)
- 设计模式复习笔记 (11)结构型模式:享元模式
- 设计模式(11)-结构型-享元模式(Flyweight)
- 重学java23种设计模式(11)享元模式
- 【设计模式 - 11】之享元模式(FlyWeight)
- 设计模式之11 - 享元模式FlyWeight
- 设计模式之结构型-享元模式(11)
- 【设计模式】11、享元模式
- 23种设计模式(11)_结构型_享元模式(Flyweight Pattern)
- 设计模式(11)-享元模式
- [设计模式] 11 享元模式 Flyweight
- [设计模式笔记]二. 结构型模式--12.Flyweight模式(享元模式)(一)
- JS常用的设计模式(16)—— 享元模式
- 设计模式之享元模式,C++实现