美文网首页
享元模式

享元模式

作者: 桌子上的方便面 | 来源:发表于2017-06-06 22:41 被阅读0次

    享元模式:采用一个共享来避免大量拥有相同内容对象的开销。这种开销中最常见、直观的就是内存的损耗。享元模式以共享的方式高效的支持大量的细粒度对象。

    享元模式 Flyweigtht

    抽象享元角色(Flyweigtht):为具体享元角色规定了必须实现的方法,而外蕴状态就是以参数的形式通过此方法传入。

    ConcreteFlywight

    具体享元角色(ConcreteFlywight):实现抽象角色规定的方法。如果存在内蕴状态,就负责为内蕴状态提供存储空间。

    UnsharedConcreteFlywight

    复合享元角色(UnsharedConcreteFlywight):它所代表的对象是不可以共享的,并且可以分解成为多个单纯享元对象的组合。


    FlyweigthtFactory

    享元工厂角色(FlyweigthtFactory):负责创建和管理享元角色。要想达到共享的目的,这个角色的实现是关键。

    享元模式的优缺点:享元模式的优点在于它大幅度地降低内存中对象的数量。但是,它做到这一点所付出的代价也是很高的:

    1、享元模式使得系统更加复杂。为了使对象可以共享,需要将一些状态外部化,这使得程序的逻辑复杂化。

    2、享元模式将享元对象的状态外部化,而读取外部状态使得运行时间稍微变长。

    享元模式的使用场景:1、当我们发现某个类型的对象有大量的实例时,我们是否可以对这些实例进行分类,经过分类后,我们发现只有很少的类别的情况下。

    2、我们发现通过使用享元模式后能够提高系统的性能和不会带来更多的复杂度时。

    相关文章

      网友评论

          本文标题:享元模式

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