Java设计模式--享元模式

来源:互联网 发布:线切割控制编程系统 编辑:程序博客网 时间:2024/06/06 05:43

享元模式

意图:通过共享来有效地支持大量细粒度的对象。

抽象出对象中不变的部分仅仅只是完成了享元模式的一半。另一半包括创建享元工厂/实例化享元,以及让客户对象共享享元对象。还需要确保客户对象应使用享元工厂来创建享元对象,而不是自己创建。

共享模式是支持大量细粒度对象的复用,所以享元模式要求能够共享的对象必须是细粒度对象。

在了解享元模式之前我们先要了解两个概念:内部状态、外部状态。

内部状态:在享元对象内部不随外界环境改变而改变的共享部分。外部状态:随着环境的改变而改变,不能够共享的状态就是外部状态。

由于享元模式区分了内部状态和外部状态,所以我们可以通过设置不同的外部状态使得相同的对象可以具备一些不同的特性,而内部状态设置为相同部分。在我们的程序设计过程中,我们可能会需要大量的细粒度对象来表示对象,如果这些对象除了几个参数不同外其他部分都相同,这个时候我们就可以利用享元模式来大大减少应用程序当中的对象。如何利用享元模式呢?这里我们只需要将他们少部分的不同的部分当做参数移动到类实例的外部去,然后再方法调用的时候将他们传递过来就可以了。这里也就说明了一点:内部状态存储于享元对象内部,而外部状态则应该由客户端来考虑。

参考资料:
http://www.cnblogs.com/jasongj/p/5518652.html

原创粉丝点击