享元模式
来源:互联网 发布:如何拍好淘宝产品照片 编辑:程序博客网 时间:2024/06/05 08:54
package flyweight;/*** * 享元类 * @author zw * */public interface ChessFlyWeight {void setColor(String color);String getColor();void display(Coordinate c);}class ConcreteChess implements ChessFlyWeight{private String color;public ConcreteChess(String color) {super();this.color = color;}@Overridepublic void setColor(String color) {this.color = color;}@Overridepublic String getColor() {// TODO Auto-generated method stubreturn color;}@Overridepublic void display(Coordinate c) {System.out.println("棋子颜色:"+this.color);System.out.println("棋子位置:("+c.getX()+","+c.getY()+")");}}
package flyweight;/*** * 外部状态 * * 棋子的位置 * @author zw * */public class Coordinate {private double x,y;public Coordinate(double x, double y) {super();this.x = x;this.y = y;}public double getX() {return x;}public void setX(double x) {this.x = x;}public double getY() {return y;}public void setY(double y) {this.y = y;}public Coordinate() {super();}}
package flyweight;import java.util.HashMap;import java.util.Map;/*** * 享元工厂 * @author zw * */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;}}}
package flyweight;public class Client {public static void main(String[] args) {ChessFlyWeight cf1 = ChessFlyWeightFactory.getChess("黑色");ChessFlyWeight cf2 = ChessFlyWeightFactory.getChess("白色");ChessFlyWeight cf3 = ChessFlyWeightFactory.getChess("白色");System.out.println(cf1);System.out.println(cf2);System.out.println(cf3);System.out.println("增加外部状态处理########");cf1.display(new Coordinate(10,10));cf2.display(new Coordinate(20,10));}}
阅读全文
0 0
- 深入浅出享元模式
- 享元模式
- 享元(FlyWeight)模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式Flyweight
- 享元模式
- 享元模式
- 享元模式
- FlyWeight 享元模式
- 享元模式(Flyweight)
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式 ---flyweight
- mysql installation guide (windows)
- V8 内存分配与垃圾回收
- python调试
- 有关Vector和List的各自优势
- linux开启bbr
- 享元模式
- physical examination
- Spring Boot初体验(一)
- Canonical标签的作用与使用
- MySql学习之性能分析Explain使用
- Struts2 ActionContext
- Templates in Flask & MVC pattern
- Java异常机制及异常处理建议
- Centos mount NTFS disk