一、什么是享元模式
Flyweight模式也叫享元模式,是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用。
二、享元模式的结构
三、享元模式的角色和职责
抽象享元角色:
所有具体享元类的父类,规定一些需要实现的公共接口。
具体享元角色:
抽象享元角色的具体实现类,并实现了抽象享元角色规定的方法。
享元工厂角色:
负责创建和管理享元角色。
package com.dw.test;
/*抽象享元角色:
所有具体享元类的父类,规定一些需要实现的公共接口。
具体享元角色:
抽象享元角色的具体实现类,并实现了抽象享元角色规定的方法。*/
public class Mycharter {
private Character mychar;
public Mycharter(Character mychar){
this.mychar=mychar;
}
public void display() {
System.out.println(mychar);
}
}
package com.dw.test;
import java.util.HashMap;
import java.util.Map;
//享元工厂角色:负责创建和管理享元角色。
public class MycharterFactory {
private Map<Character,Mycharter> pool;
public MycharterFactory(){
pool=new HashMap<Character, Mycharter>();
}
public Mycharter getMyCharter(Character character)
{
Mycharter mycharter=pool.get(character);
if(mycharter==null)
{
mycharter=new Mycharter(character);
pool.put(character, mycharter);
}
return mycharter;
}
}
package com.dw.test;
public class MianClass {
/*
* 一、什么是享元模式
* Flyweight模式也叫享元模式,是构造型模式之 一,它通过与其他类似对象共享数据来减小内存 占用。
* 三、享元模式的角色和职责
* 抽象享元角色: 所有具体享元类的父类,规定一些需要实现的公共接口。
* 具体享元角色:抽象享元角色的具体实现类,并实现了抽象享元角色规定的方法。
* 享元工厂角色:负责创建和管理享元角色。
*/
public static void main(String[] args) {
Mycharter mycherter = new Mycharter('a');
Mycharter mycherter1 = new Mycharter('b');
Mycharter mycherter2 = new Mycharter('a');
Mycharter mycherter3 = new Mycharter('c');
mycherter.display();
mycherter1.display();
mycherter2.display();
mycherter3.display();
System.out.println(mycherter == mycherter2);
System.out.println("----------------------------");
// 创建享元工厂
MycharterFactory mf = new MycharterFactory();
Mycharter my1 = mf.getMyCharter('a');
Mycharter my2 = mf.getMyCharter('b');
Mycharter my3 = mf.getMyCharter('a');
Mycharter my4 = mf.getMyCharter('c');
my1.display();
my2.display();
my3.display();
my4.display();
System.out.println(my1 == my3);
}
}
分享到:
相关推荐
用享元模式分析并实现一个具体案例。在一家咖啡店中客户每买一杯咖啡,咖啡制做系统就相应地创建该杯咖啡的配料表,并将其发送给店内的咖啡制做机,咖啡制做机接收到系统发送的配料表后便开始制造客户所买的咖啡。...
在享元模式中可以共享的相同内容称为内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状态(Extrinsic State),由于区分了内部状态和外部状态,因此可以通过设置不同的外部状态使得相同...
享元模式的分析以及实际应用 1.前言 4 1.1 课题的研究背景 4 1.2 课题主要研究目标 4 2.相关技术简介 4 2.1Java简介 4 3. 享元模式介绍 5 3.1举例分析 5 3.2基本介绍 5 3.3享元模式的具体角色 5 4. 享元模式之借书...
设计模式的享元模式的例子,希望对大家有用~~~~~~~~
设计模式之享元模式 设计模式之享元模式 设计模式之享元模式
设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx设计模式学习笔记--Flyweight享元模式.docx
设计模式之享元模式的两种实现方式——单纯享元模式和复合享元模式,已经各种的UML类设计图
享元模式的示例代码和文档,学习享元模式的参考资料。
享元模式Demo
享元模式运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。
享元模式最适合于解决因创建大量类似对象而累及性能的问题,本文将来总结JavaScript设计模式编程中的享元模式使用,包括在DOM操作时的利用示例:
设计模式-享元模式(讲解及其实现代码)
Android享元模式Demo,同步文章地址:http://blog.csdn.net/qq_28690547/article/details/51144424
设计模式(C#)之享元模式(Flyweight Pattern),运用共享技术有效地支持大量细粒度的对象。
C#面向对象设计模式纵横谈(12):Flyweight 享元模式(结构型模式) (Level 300)
设计模式面面观(14):享元模式(Facade Pattern)-结构型模式 http://blog.csdn.net/fanweiwei/archive/2008/04/25/2326692.aspx
java设计模式【之】享元模式【源码】【场景:多缓存可选模式】 /** * 享元模式(预加载单例) * “元” 理解为 “同一地址对象” * 运用共享技术,减少对象的创建,降低对象的数量,降低内存消耗,提高性能 * ...
设计模式中的享原模式技术入门,可用于各种说明场合,一看就会哦
享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。 享元模式可以避免大量非常相似类的开销。在程序设计中,有时需要生成大量细粒度的类实例来表示数据。如果能发现这些实例除了几个参数外基本上都是...