美文网首页
设计模式:12-享元模式:Flyweight

设计模式:12-享元模式:Flyweight

作者: 大栗几 | 来源:发表于2020-05-21 13:07 被阅读0次

    文章来源本人的博客:http://codelifeliwan.github.io/ 转载请注明出处
    查看[设计模式]系列内容请点击:https://www.jianshu.com/nb/45937362

    定义:

    采用共享对象的方法来有效地支持大量细粒度对象

    理解:

    对于很多情形来说,需要创建一个类的很多对象,而这些对象的状态(即自己固有的参数)都可以转化成外部状态,也就是说需要一系列的某个类的对象,可以根据这些对象的参数等将这些对象归类。从而对于一类只需要创建一个对象即可,当所有的能归为一类的时候就变成了单例模式。

    举个栗子:在我们的Java语言中,我们创建两个字符串对象:

    String str1=”hello”;

    String str2=”hello”;

    这时候我们比较这两个字符串的引用str1==str2为true。

    也就是说str1和str2是同一个对象的两个引用而已。这就是使用了共享对象,也就是享元模式。

    方法:

    使用Map(也可以用其他)的key value键值对,每次使用的时候检索map,看看外部状态所在的对象是否已经存在,存在的话就直接取,不存在的话就创建新对象并且存入map,供其他程序使用。

    适用场合:

    当具备以下情况时:

    1、 一个程序需要创建大量的对象,造成很大内存开销

    2、 对象的大多数状态可以转变为外部状态

    结构和代码说明:

    QQ截图20140529152525

    相关文章

      网友评论

          本文标题:设计模式:12-享元模式:Flyweight

          本文链接:https://www.haomeiwen.com/subject/hcyzohtx.html