作为对象的创建模式,多例模式中的多例类将恶意有多个实例,俄日额多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。多例模式的特点:有多个实例;自己创建、管理自己的实例;自己向外界提供自己的实例。
根据实例数量可将多例类分为有上限多例类和无上限多例类。
有上限多例类已经把实例的上线当作逻辑的一部分,并创建到了多例类的内部,这种多例模式叫做有上限多例模式。麻将牌掷两颗骰子就是一个双态类。它的类图结构如下:
它以饿汉方式创建了两个实例,然后根据静态工厂方法参数选择哪一个实例。
无上限多利模式只多例模式的实例数量没有上线。多语言项目(网站国际化)的设计是一个很好的无上限多利模式的例子,它的类图如下:
该例子需要两个资源文件中文资源文件和英文资源,这个在附件中有。
根据状态可将多例类分为有状态多例类和无状态多例类。多例对象的状态在加载后可以改变的称为有状态多例类,反之称为无状态多例类。
参考文献:《Java与模式》,闫宏,第十五章。