享元模式
定义:采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗。享元模式以共享的方式高效的支持大量的细粒度对象。
优点:节省空间。
缺点:如果需要维护的享元很多则查找的时候需要大量的时间,该模式以时间换空间。
小巩需要实现文字注册码,以“好好学习,天天向上”。如果采用每一个字都注册对象的话,以后再使用的时候,还需要重新创建。怎么办呢?
可以设立一个共享池,需要的时候从共享池里取。
代码也比较简单
public interface Flyweight {
String getName();
}
public class HaoFlyweight implements Flyweight {
public HaoFlyweight(String name) {
this.name = name;
}
public String getName() {
return name;
}
private String name;
}
public class XueFlyweight implements Flyweight {
public XueFlyweight(String name) {
this.name = name;
}
public String getName() {
return name;
}
private String name;
}
。。。。。
public class ShangFlyweight implements Flyweight {
public ShangFlyweight(String name) {
this.name = name;
}
public String getName() {
return name;
}
private String name;
}
import java.util.List;
import java.util.ArrayList;
public class FlyweightFactory {
private List list