☆ 作为对象的创建模式,多例模式中的多例类可以有多个实例,而且多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。
§ 15.1 引言
☆ 本节实在是没什么内容,不过有个比较好玩的地方,以前知道i18n是国际化,但一直不明白为什么这么缩写,其实是这样的:
I | n | t | e | r | n | a | t | i | o | n | a | l | i | z | a | t | i | o | n |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
§ 15.2 多例模式
☆ 多例模式的特点:
① 多例类可以有多个实例;
② 多例类必须自己创建、管理自己的实例;
③ 多例类必须自己向外界提供自己的实例。
☆ 有上限多例类
一个实例数目有上限的多例类已经把实例的上限当做逻辑的一部分,并建造到了多例类的内部,这种多例模式叫做有上限多例模式。
由于有上限多例类对实例的数目有上限,因此有上限的多例类在这个上限等于1的时候,就退化成了单例类。
☆ 无上限多例类
多例类的实例数目并不需要上限,实例数目没有上限的多例模式就叫做无上限多例模式。
由于没有上限的多例类对实例数目是没有限制的,因此,虽然这种多例模式是单例模式的推广,但是这种多例类并不一定能够退化回单例类。
由于事先不知道要创建多少个实例,因此,必然使用集合管理所有的实例。
看了上面的阐述,你是不是也跟我一样觉得作者有点罗嗦呢??
☆ 多例既然是单例的推广,同样具有“有状态”和“无状态”之分,具体请参照我的单例学习笔记。
《java与模式》笔记(十一) 单例模式
============================
再后面的内容跟18章都是具体举例说明问题,主要是i18n和后面的一个序列生产器,这里主要学习设计思路,那些东西就不往上敲了,下一篇将直接进入19章,建造模式(Builder)