zoukankan      html  css  js  c++  java
  • Flyweight 模式

    特点:将重复创建消耗内存或资源的对象采用对象池方式以外部化实例实现,以达到对象重用的目的。

    使用过程可分为以下三个步骤:

    1.将需重复创建的对象进行对象池封装

    class ExternalizedData{
    static final int size=100;
    static int [] id=new int[size];
    static int [] i=new int[size];
    static {
    for(int i=0;i<size;++i){
    id[i]=i;
    }
    }
    }
    2.建立中间对象对1中对象进行操作,而非对新建对象操作
    class FlyPoint{
    private FlyPoint(){}
    public static int getI(int obnum){
    return ExternalizedData.i[obnum];
    }
    public static void setI(int obnum,int i){
    ExternalizedData.i[obnum]=i;
    }
    public static String getString(int obnum){
    return "id:"+ExternalizedData.id[obnum]+" , i = "+ExternalizedData.i[obnum];
    }
    }
    3.客户端操作
    public class FlyWeightObjects {
    public static void main(String[] args) {
    for(int i=0;i<ExternalizedData.size;++i){
    FlyPoint.setI(i,FlyPoint.getI(i)+1);
    }

    System.out.println(ExternalizedData.size-1);
    }
    }
  • 相关阅读:
    搜索专题
    KMP专题
    CSU 1326: The contest(分组背包)
    强连通专题
    MST:Bad Cowtractors(POJ 2377)
    MST:Agri-Net(POJ 1258)
    ShortestPath:Layout(POJ 3169)(差分约束的应用)
    MST:Conscription(POJ 3723)
    MST:Roadblocks(POJ 3255)
    DP:Space Elevator(POJ 2392)
  • 原文地址:https://www.cnblogs.com/ssMellon/p/6518006.html
Copyright © 2011-2022 走看看