享元模式
来源:互联网 发布:笑傲江湖ol知乎 编辑:程序博客网 时间:2024/06/02 04:15
享元模式(Flyweight):运用共享技术有效地支持大量细粒度的对象。享元模式分为内部模式(不会随着环境改变而改变共享内容,下例)和外部模式(会随着环境改变而改变共享内容)。
类图:
代码:
publicabstractclass Flyweight {
publicabstractvoid operation();
}
publicclass ConcreteFlyweightAextends Flyweight {
@Override
publicvoid operation() {
System.out.println("共享的类型A操作");
}
}
publicclass ConcreteFlyweightBextends Flyweight{
@Override
publicvoid operation() {
System.out.println("共享的类型B操作");
}
}
publicclass UnshareConcreteFlyweightextends Flyweight{
@Override
publicvoid operation() {
System.out.println("不共享的类型操作");
}
}
publicclass FlyweightFactory {
private Map<String, Flyweight>flyweights=new HashMap<String, Flyweight>();
public FlyweightFactory(){
flyweights.put("A",new ConcreteFlyweightA());
flyweights.put("B",new ConcreteFlyweightB());
}
public Flyweight getFlyweight(String key){
returnflyweights.get(key);
}
}
publicstaticvoid main(String[] args) {
FlyweightFactory ff=new FlyweightFactory();
ff.getFlyweight("B").operation();
ff.getFlyweight("A").operation();
ff.getFlyweight("A").operation();
}
优点:可以减少对象的数量,节约内存。
缺点:只适合处理粒度小的对象。
享元模式看上去像是对对象的个数限制,本人认为享元模式和创造型的工厂,单例比较相似。
- 深入浅出享元模式
- 享元模式
- 享元(FlyWeight)模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式Flyweight
- 享元模式
- 享元模式
- 享元模式
- FlyWeight 享元模式
- 享元模式(Flyweight)
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式 ---flyweight
- select详解
- 兄弟们冷静点 我们什么场面没见过?
- Android学习第一天--Activity相关
- 很强大,并且易于使用,更重要的是免费的一个分区工具:分区助手
- Linux访问Windows共享
- 享元模式
- UML用例图
- LRU算法
- iOS app发布validate错误修正
- .net中水晶报表使用
- 【Android游戏开发之九】(细节处理)触屏事件中的Bug解决方案以及禁止横屏和竖屏切换!
- windows 添加应用程序到服务
- ios开发学习--文字视图(Text)效果源码分享--系列教程
- linux 中断与时钟