Flyweight 模式
Posted 空山皓月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
}
}
以上是关于Flyweight 模式的主要内容,如果未能解决你的问题,请参考以下文章