享元模式
来源:互联网 发布:意式咖啡机推荐知乎 编辑:程序博客网 时间:2024/06/07 00:41
JAVA的字符串就是享元模式的例子。
String 声明之后就是final类型。并存到常量池。再次新建一个同样的字符串,亦然指向该常量池的地址。(五子棋,围棋)
这样就没必要创建大量的对象(类似的对象)。节省资源。
该享元模式,就是共享空间,来避免大量同样内容对象的开销。 大量颗粒的对象。
主要是区分内蕴状态(在享元对象内部,不会随着环境改变而不同,可以共享),外蕴状态(与前者相反,由客户端保存,并随着环境改变而改变,不可共享,在需要使用的时候传到 享元对象内部)。
享元抽象类:
piblic abstract class Flyweight{ public abstract void operation(int x);}
具体享元类:
class ConcreteFlyweight extends Flyweight{ public void operation(int x){ System.out.println("共享:"+x); }}
相当于一个 多对象单例模式。
class FlyweightFactory{ private Set fly = new Hashtable(); public FlyweightFactory(){ fly.put("x", new ConcreteFlyweight()); }}
我们使用的时候,直接从set中取就可以了。
如果不共享,有差别的部分。。可以定义外部状态。。外部状态 其实就是 声明。 共享类里面的一个对象。然后set到共享类中,共享类调用该类。
就实现差异化。
0 0
- 深入浅出享元模式
- 享元模式
- 享元(FlyWeight)模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式Flyweight
- 享元模式
- 享元模式
- 享元模式
- FlyWeight 享元模式
- 享元模式(Flyweight)
- 享元模式
- 享元模式
- 享元模式
- 享元模式
- 享元模式 ---flyweight
- L1-003个位数统计
- L1-028. 判断素数 java
- [Trick] 一般图最大匹配的随机匹配
- fedora下安装telnet,ftp,vnc----这三个工具到底是什么
- SSH框架整合之tomcat启动报错org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactor
- 享元模式
- 计算机视觉内容学习
- [BZOJ3998]弦论
- TI am335x sdk安装过程记录
- 递归递推 D
- LintCode 平衡二叉树
- mac 下配置Latex 搭配sublime2 skim
- L1-029. 是不是太胖了 java
- 第四章 运算符和表达式