摘要:享元模式一享元模式定义运用共享技术有效的支持大量细粒度的对象二具体实现创建对象接口创建具体对象创建工厂调用输出三优缺点优点减少对象的创建,节省内存缺点提升了系统的复杂性四源码
享元模式
一. 享元模式 1.1 定义运用共享技术有效的支持大量细粒度的对象.
二. 具体实现 2.1 创建对象接口public interface IFlyweight { void print(); }2.2 创建具体对象
public class Flyweight implements IFlyweight { private String id; public Flyweight(String id){ this.id = id; } @Override public void print() { System.out.println("Flyweight.id = " + getId() + " ..."); } public String getId() { return id; } }2.3 创建工厂
public class FlyweightFactory { private Map2.4 调用flyweightMap = new HashMap(); public IFlyweight getFlyweight(String str){ IFlyweight flyweight = flyweightMap.get(str); if(flyweight == null){ flyweight = new Flyweight(str); flyweightMap.put(str, flyweight); } return flyweight; } public int getFlyweightMapSize(){ return flyweightMap.size(); } }
public static void main(String[] args) { FlyweightFactory flyweightFactory = new FlyweightFactory(); IFlyweight flyweight1 = flyweightFactory.getFlyweight("A"); IFlyweight flyweight2 = flyweightFactory.getFlyweight("B"); IFlyweight flyweight3 = flyweightFactory.getFlyweight("A"); flyweight1.print(); flyweight2.print(); flyweight3.print(); System.out.println(flyweightFactory.getFlyweightMapSize()); }2.5 输出
Flyweight.id = A ... Flyweight.id = B ... Flyweight.id = A ... 2三. 优缺点 3.1 优点
减少对象的创建,节省内存.
3.2 缺点提升了系统的复杂性.
四. 源码https://github.com/Seasons20/DisignPattern.git
END
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/69534.html
摘要:享元模式属于结构型模式的一种,又称轻量级模式,通过共享技术有效地实现了大量细粒度对象的复用概述两种结构状态内部状态享元对象内部不随外界环境改变而改变的共享部分。 享元模式(Flyweight Pattern)属于结构型模式的一种,又称轻量级模式,通过共享技术有效地实现了大量细粒度对象的复用... 概述 两种结构状态 内部状态:享元对象内部不随外界环境改变而改变的共享部分。 外部状态...
摘要:享元模式运用共享技术来有效地支持大量细粒度对象的复用,以减少创建的对象的数量。意为苍蝇,指轻蝇量级,指代对象粒度很小。如果考生人数少,就分别少准备几个自动档和手动档的驾考车,考生多的话就多准备几辆。我们去考四六级的时候为什么这么多考试 showImg(https://segmentfault.com/img/remote/1460000020135777); 享元模式 (Flyweig...
摘要:类的适配器结构目标角色这就是所期待得到的接口,由于是类适配器模式,因此目标不可以是类。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。和适配器模式的关系适配器模式的用意是改变所考虑对象的接口,而代理模式不能改变。 点击进入我的博客 3.1 适配器模式 适配器模式把一个类的接口变换成客户端所期待的另一种接口,使得原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 3...
摘要:享元模式会复用那些内存中已经存在且与请求对象相似的对象,而不是去创建新的对象,那些已经存在的对象会以某种方式存储,如果没有发现与请求匹配的对象时将会创建新的对象。 原文链接译者:smallclover希望对你有所帮助,谢谢! 设计模式-享元模式 享元模式主要用来减少对象的数量(复用我们内存中已存在的对象,减少在系统创建对象实例),以此来减少对内存资源的占用,从而提高系统的性能。这种类型...
阅读 2208·2021-11-22 15:29
阅读 4098·2021-11-04 16:13
阅读 991·2019-08-29 16:58
阅读 338·2019-08-29 16:08
阅读 1455·2019-08-23 17:56
阅读 2378·2019-08-23 17:06
阅读 3165·2019-08-23 16:55
阅读 2058·2019-08-23 16:22