zoukankan      html  css  js  c++  java
  • java设计模式之享元模式

    定义一个公用的内部

    public interface ClessFlyWeight {
    void setColor(String c);
    String getColor();
    void display(Coordinate c);
    }
    class ConcreteChess implements ClessFlyWeight{

    private String color;


    public ConcreteChess(String color) {
    super();
    this.color = color;
    }

    @Override
    public String getColor() {
    // TODO Auto-generated method stub
    return color;
    }

    @Override
    public void setColor(String c) {
    // TODO Auto-generated method stub
    this.color=c;
    }

    @Override
    public void display(Coordinate c) {
    // TODO Auto-generated method stub
    System.out.println("棋子颜色"+color);
    System.out.println("棋子位置:"+c.getX()+c.getY());
    }

    }

    定义享元工厂

    /**
    *
    * 享元工厂类
    * @author zzdxw
    *
    */
    public class ClessFlyWeightFactory {
    //享元池
    private static Map<String, ClessFlyWeight> map=new HashMap<String ,ClessFlyWeight>();
    public static ClessFlyWeight getChess(String color){
    if(map.get(color)!=null){
    return map.get(color);
    }else{
    ClessFlyWeight cfw=new ConcreteChess(color);
    map.put(color,cfw);
    return cfw;
    }
    }
    }

    //定义一个外部的

    public 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 Client {
    public static void main(String[] args) {
    ClessFlyWeight chess1=ClessFlyWeightFactory.getChess("黑色");
    ClessFlyWeight chess2=ClessFlyWeightFactory.getChess("黑色");
    System.out.println(chess1);
    System.out.println(chess2);
    }
    }

  • 相关阅读:
    单片机GPIO口模拟串口的方法
    arduino~snprintf
    #7号板问题
    stm8s + si4463 寄存器配置
    linux之cut用法
    74HC123D 引脚介绍及应用
    无线板卡接口定义
    iio adc转换应用编写
    m72 gprs模块的应用编写
    dac7562 应用层实现dac
  • 原文地址:https://www.cnblogs.com/cyz110/p/6506566.html
Copyright © 2011-2022 走看看