全国统一服务热线

186-7589-7389

新闻中心

当前位置:首页>新闻中心

经典设计模式之享元模式

我们经常会遇到一些很重型的设计对象,它们通常拥有大量的成员属性,并且当系统中充满了大量这些对象时,系统的内存就会受到很大的压力。另外,频繁创建这些对象还会大大消耗系统的CPU资源。

享元模式是一种经典的设计模式,对于它的了解,可以帮助我们在遇到一些重型对象时加以应用,从而减少系统资源的占用。

接下来就来谈谈享元模式是什么。

享元模式

我们经常会遇到一些很重型的设计对象,它们通常拥有大量的成员属性,并且当系统中充满了大量这些对象时,系统的内存就会受到很大的压力。另外,频繁创建这些对象还会大大消耗系统的CPU资源。

在这些重型的对象中,大多数成员属性都是固定的,在这种情况下,就是使用我们今天要讲的享元模式来解决。通过将固定不变的部分进行设计,设计成为共享对象,从而节省大量的CPU和系统内存。

享元模式摒弃了将所有数据保存在每个对象中的方法,通过共享多个对象所共有的相同状态,可以让你在有限的内存容量中可以载入更多的对象,从而减少资源的消耗。

在决定对一个重型对象采用享元模式进行优化时,首先需要将重型对象的属性分为两类,即能够共享的和不可共享的。前一种状态我们称为内部状态,存储在享元中,不随享元所处上下文的改变而改变;后者称为外部状态,其值取决于享元所处的上下文,因此无法共享。

例如,文章A和文章B引用了图片A,因为文章A和文章B的文本内容不同,文字就是外部状态,不能共享;但它们引用的图片A是相同的,这种情况属于内部状态,因此我们可以将图片A这一共享的内容,设计为一个享元。

通常情况下,工厂模式与享元模式结合出现,享元工厂提供了获取享元对象的接口,因此Client无法察觉享元是如何共享的,从而减少了模块的耦合。


QQ咨询
在线咨询
在线报名
186-7589-7389
186-7589-7389
返回顶部