`
darezhong
  • 浏览: 8898 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

设计模式学习之享元模式

阅读更多

享元模式:运用共享技术有效地支持大量细粒度的对象。主要用于避免大量非常相似类的开销。在很多程序设计中,有时需要生成大量细粒度的类实例来表示数据,这时候可以采用享元模式来共享这些类实例,从而减少这些实例的数量。

 

代码示例:

享元抽象类:
package DesignPattern.FlyweightPattern;

public abstract class Flyweight {

	public abstract void Operate(int i);
}

 

具体享元类:
package DesignPattern.FlyweightPattern;

public class ConcreateFlyweight extends Flyweight {

	@Override
	public void Operate(int i) {
		// TODO Auto-generated method stub
		System.out.println("具体享元:" + i);
	}
}

 

享元抽象类:
package DesignPattern.FlyweightPattern;

import java.util.Hashtable;

public class FlyweightFactory {

	private Hashtable flyWeights = new Hashtable();
	
	public FlyweightFactory() {
		this.flyWeights.put("A", new ConcreateFlyweight());
		this.flyWeights.put("B", new ConcreateFlyweight());
		this.flyWeights.put("C", new ConcreateFlyweight());
	}
	
	public Flyweight getFlyweight(String key) {
		return (Flyweight) flyWeights.get(key);
	}
}

 

主控程序类:
package DesignPattern.FlyweightPattern;

public class Client {

	public static void main(String[] args) {
		int i = 1;
		FlyweightFactory factory = new FlyweightFactory();
		Flyweight fly1 = factory.getFlyweight("A");
		fly1.Operate(++i);
		Flyweight fly2 = factory.getFlyweight("B");
		fly2.Operate(++i);
		Flyweight fly3 = factory.getFlyweight("C");
		fly3.Operate(++i);
		Flyweight fly4 = factory.getFlyweight("B");
		fly4.Operate(++i);
		Flyweight fly5 = factory.getFlyweight("B");
		fly5.Operate(++i);
		Flyweight fly6 = factory.getFlyweight("B");
		fly6.Operate(++i);
	}
}

  

分享到:
评论

相关推荐

    设计模式学习笔记--Flyweight享元模式.docx

    设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx

    享元模式的分析以及实际应用.docx

    享元模式的分析以及实际应用 1.前言 4 1.1 课题的研究背景 4 1.2 课题主要研究目标 4 2.相关技术简介 4 2.1Java简介 4 3. 享元模式介绍 5 3.1举例分析 5 3.2基本介绍 5 ...6. 享元设计模式学习总结: 13

    设计模式享元模式PPT学习教案.pptx

    设计模式享元模式PPT学习教案.pptx

    设计模式之享元模式

    设计模式课程学习之PPT分享,可以用学习或者讲义,希望各位喜欢。

    《C++20设计模式》学习笔记-第11章享元模式-配套代码

    《C++20设计模式》学习笔记-第11章享元模式-配套代码

    学习JavaScript设计模式之享元模式

    主要为大家介绍了JavaScript设计模式中的享元模式,对JavaScript设计模式感兴趣的小伙伴们可以参考一下

    java后端开发+java23种设计模式学习demo

    结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、...

    尚硅谷设计模式源码笔记课件.zip

    2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,...

    研磨设计模式(完整带书签).part2.pdf

    也可以作为高效学生深入学习设计模式的参考读物! 第1章 设计模式基础 第2章 简单工厂 第3章 外观模式 第4章 适配器模式(Adapter) 第5章 单例模式(Singleton) 第6章 工厂方法模式(Factory Method) 第7章...

    23种Python设计模式示例演示源码包.rar

    23种Python设计模式示例演示源码包,比如包括了工厂模式、Bridge桥接模式、Builder构建模式、Facade外观模式、Adapter适配器模式,Composite组合模式、Decorator装饰器模式,FactoryMethod工厂方法模式、Flyweight享...

    学习php设计模式 php实现享元模式(flyweight)

    享元模式变化的是对象的存储开销 二、享元模式结构图 三、享元模式中主要角色 抽象享元(Flyweight)角色:此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口。那些需要外蕴状态的操作可以通过调用...

    深入浅出java设计模式(高清中文PDF)

    文件类型为PDF文件,此文档对20多种java设计模式进行了详细讲解,在中文讲解的过程中还附有代码示例给学习者进行参考,使学习者通过实践更容易理解设计模式的原理。 本文档目录: 1.工厂模式 2.单例模式 3.建造...

    设计模式可复用面向对象软件的基础.zip

    4.6 Flyweight(享元)—对象结构型 模式 128 4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN ...

    设计模式 GOF 23

    本书设计实例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。本书分类描述了一组设计良好,表达清楚的软件设计模式,这些模式在实用环境下有特别有用...

    设计模式--C++

    4.6 Flyweight(享元)—对象结构型模式 128 4.7 Proxy(代理)—对象结构型模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter 与 Bridge 144 4.8.2 Composite、 Decorator 与 Proxy 145 第 5 章 行为模式 147 5.1 ...

    享元模式代码+文档

    主要是设计模式老师布置的作业,内含精美文档,希望一起学习

    Android源码设计模式解析与实战

    本书专门介绍Android源代码的设计模式,共26章,主要讲解面向对象的六大原则、主流的设计模式以及MVC和MVP模式。主要内容为:优化代码的首步、开闭原则、里氏替换原则、依赖倒置原则、接口隔离原则、迪米特原则、...

    《c#设计模式》电子书+随书源码

    本书内容覆盖了所有23个经典的“四人小组”设计模式,具体包括:适配器,外观,合成,桥接,单件,观察者,中介者,代理,职责链,享元,生成器,工厂方法,抽象工厂,原型,备忘录,模板方法,状态,策略,命令,...

    设计模式:可复用面向对象软件的基础--详细书签版

    4.6 flyweight(享元)—对象结构型 模式 128 4.7 proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 adapter与bridge 144 4.8.2 composite、decorator与proxy 145 第5章 行为模式 147 ...

    设计模式(.PDF)

    4.6 Flyweight(享元)—对象结构型 模式 128 4.7 Proxy(代理)—对象结构型 模式 137 4.8 结构型模式的讨论 144 4.8.1 Adapter与Bridge 144 4.8.2 Composite、Decorator与Proxy 145 第5章 行为模式 147 5.1 CHAIN ...

Global site tag (gtag.js) - Google Analytics