享元模式
来源:互联网 发布:人工智能创意文案 编辑:程序博客网 时间:2024/06/16 21:49
一个系统中,如果有很多一样的对象,就会浪费内存。享元模式即共享相同的对象,比如一台打印机打印时需根据用户要求使用不同字体,如果在print函数里面实例化字体,就会创建很多相同的字体,浪费资源。
import java.util.HashMap;import java.util.Map;abstract class Font{ public abstract void print(String str);}class FontA extends Font{ @Override public void print(String str) { System.out.println("A字体的[" + str + "]"); }} class FontB extends Font{ @Override public void print(String str) { System.out.println("B字体的[" + str + "]"); }} class FontFactory{ private Map<String, Font> fonts = new HashMap<String, Font>(); private Font createFontByName(String name){ if("A".equals(name)){ return new FontA(); } else { return new FontB(); } } public Font getFontByName(String name){ if(fonts.containsKey(name)){ return (Font)fonts.get(name); } else { Font res = createFontByName(name); fonts.put(name, res); return res; } }}class Printer { FontFactory fontFactory = new FontFactory(); public void print(String str, String fontName){ Font font = fontFactory.getFontByName(fontName); font.print(str); }}public class Main{ public static void main(String[] args){ Printer printer = new Printer(); printer.print("abc", "A"); printer.print("abc", "A"); printer.print("abc", "B"); printer.print("abc", "B"); }}
阅读全文
0 0
- 深入浅出享元模式
- 享元模式
- 享元(FlyWeight)模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式Flyweight
- 享元模式
- 享元模式
- 享元模式
- FlyWeight 享元模式
- 享元模式(Flyweight)
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式 ---flyweight
- angular4 服务依赖注入的三种方法
- linux常用操作命令及linux系统目录结构
- [agc015e]Mr.Aoki Incubator
- python笔记003--python的运行方式
- HDU
- 享元模式
- 这是我的第一个博客
- 数据结构实验之链表一:顺序建立链表
- 安装Ubuntu Linux系统时硬盘分区最合理的方法
- ZooKeeper系列(二)
- java学习记录——整数累加及阶乘累加
- AKKA并发编程简介
- 判断一棵二叉树是不是对称的
- codeblock配置caffe