享元模式 Flyweight Pattern
来源:互联网 发布:大数据属于什么行业 编辑:程序博客网 时间:2024/05/29 12:41
一、什么是享元模式
Flyweight模式也叫享元模式,是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用。
二、享元模式的结构
see the picture
三、享元模式的角色和职责
Flyweight模式也叫享元模式,是构造型模式之一,它通过与其他类似对象共享数据来减小内存占用。
二、享元模式的结构
see the picture
三、享元模式的角色和职责
抽象享元角色:
所有具体享元类的父类,规定一些需要实现的公共接口。具体享元角色:
抽象享元角色的具体实现类,并实现了抽象享元角色规定的方法。
享元工厂角色:负责创建和管理享元角色。
MyCharacter.javapublic class MyCharacter { private char mychar; public MyCharacter(char mychar) { this.mychar = mychar; } public void display() { System.out.println(mychar); } }MyCharacterFactory.javaimport java.util.HashMap; import java.util.Map; public class MyCharacterFactory { private Map<Character,MyCharacter> pool; public MyCharacterFactory() { pool = new HashMap<Character,MyCharacter>(); } public MyCharacter getMyCharacter(Character character) { MyCharacter myChar = pool.get(character); if(myChar == null) { myChar = new MyCharacter(character); pool.put(character, myChar); } return myChar; } }MainClass.javapublic class MainClass { public static void main(String[] args) { // MyCharacter myChar1 = new MyCharacter('a'); // MyCharacter myChar2 = new MyCharacter('b'); // MyCharacter myChar3 = new MyCharacter('a'); // MyCharacter myChar4 = new MyCharacter('d'); // // myChar1.display(); // myChar2.display(); // myChar3.display(); // myChar4.display(); // // if(myChar1 == myChar3) { // System.out.println("true"); // } else { // System.out.println("false"); // } //1.创建MyCharacter工厂 MyCharacterFactory factory = new MyCharacterFactory(); //2.从工厂中取出相应的MyCharacter MyCharacter myChar1 = factory.getMyCharacter('a'); MyCharacter myChar2 = factory.getMyCharacter('b'); MyCharacter myChar3 = factory.getMyCharacter('a'); MyCharacter myChar4 = factory.getMyCharacter('d'); myChar1.display(); myChar2.display(); myChar3.display(); myChar4.display(); if(myChar1 == myChar3) { System.out.println("true"); } else { System.out.println("false"); } } }
- 享元模式(Flyweight Pattern)
- 享元模式(Flyweight Pattern)
- 享元模式(Flyweight pattern)
- 享元模式 Flyweight Pattern
- 享元模式(Flyweight Pattern)
- 享元模式(Flyweight Pattern)
- 享元模式(Flyweight Pattern)
- 享元模式( Flyweight Pattern)
- flyweight pattern -- 享元模式
- 享元模式(Flyweight Pattern)
- 享元模式(Flyweight Pattern)
- 享元模式 Flyweight Pattern
- 享元模式 | Flyweight Pattern
- 享元模式(Flyweight Pattern)
- 享元模式(Flyweight Pattern)
- 设计模式【享元模式Flyweight Pattern】
- 享元模式(Flyweight Pattern)
- 享元模式(Flyweight Pattern)
- 如何使用Email下发来加载显示HTML文件的内容
- Response.ContentType 详细列表
- Android4.0中判断WIFI P2P选项是否显示的源码分析
- Linux编程make命令
- jquery 实现异步加载树
- 享元模式 Flyweight Pattern
- 前台页面的一些常见的特效
- ping不通的几种可能原因
- Working With The WPF Dispatcher
- spring 任务计划MethodInvokingJobDetailFactoryBean动态cronExpression的配置介绍
- 占位符
- Android EditText使用
- std::map, std::multimap, std::tr1::unordered_map 区别
- 第二章 jQuery技术解密 (六)