设计模式之享元模式
来源:互联网 发布:网络语cp,os是什么意思 编辑:程序博客网 时间:2024/05/29 18:13
flyweight设计模式
享元模式的实现
//抽象享元类public interface ChessFlyWeight { void setColor(String c); String getColor(); void display(Coordinate c);}//具体享元类class ConcreteChess implements ChessFlyWeight { private String color; public ConcreteChess(String color) { super(); this.color = color; } @Override public void display(Coordinate c) { System.out.println("棋子颜色:"+color); System.out.println("棋子位置:"+c.getX()+"----"+c.getY()); } @Override public String getColor() { return color; } @Override public void setColor(String c) { this.color = c; }}//外部状态UnSharedConcreteFlyWeightpublic class Coordinate { private int x,y; public Coordinate(int x, int y) { super(); this.x = x; this.y = y; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; }}public class ChessFlyWeightFactory { //享元池 private static Map<String,ChessFlyWeight> map = new HashMap<String, ChessFlyWeight>(); public static ChessFlyWeight getChess(String color){ if(map.get(color)!=null){ return map.get(color); }else{ ChessFlyWeight cfw = new ConcreteChess(color); map.put(color, cfw); return cfw; } }}public class Client { public static void main(String[] args) { ChessFlyWeight chess1 = ChessFlyWeightFactory.getChess("黑色"); ChessFlyWeight chess2 = ChessFlyWeightFactory.getChess("黑色"); System.out.println(chess1); System.out.println(chess2); System.out.println("增加外部状态的处理==========="); chess1.display(new Coordinate(10, 10)); chess2.display(new Coordinate(20, 20)); }}
以上设计模式均为结构型模式
阅读全文
0 0
- 设计模式之享元
- 设计模式之享元
- 设计模式 之 享元
- 设计模式之享元
- 设计模式之享元
- 设计模式之Flyweight享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- java设计模式之享元模式
- 【设计模式】之 Flyweight享元模式
- 设计模式之享元模式
- c++设计模式之享元模式
- 设计模式之享元模式
- 设计模式之享元模式
- 浏览器兼容
- 2017国际区块链应用联合会八月论坛(北京)成功召
- 类加载顺序
- AndroidStudio3.0 下载地址
- linux 负载浅谈
- 设计模式之享元模式
- 数组字面量优于数组构造函数
- poj-1054-The Troublesome Frog
- 我的技术博客开通了
- 漫画加载,频道管理(MainActivity)
- Linux更改系统默认运行级别
- 领英爬虫小系统
- keras中文文档笔记16——使用预训练的词向量
- 项目开发过程