1. 特点
(1)一个类可以有多个实例存在。
(2)只能由该类负责创建多个实例。
(3)只能由该类负责提供多个实例。
2. 有上限多例模式和无上限多例模式
(1)有上限多例模式:骰子游戏
(2)无上限多例模式:由于不知道要创建多少个实例,必须用聚集管理所有的实例。
但与单例模式中管理聚集不同,在无上限多例模式中,聚集用来登记和管理多例自身的实例。
4. 与单例模式一样,多例模式在以下情况时可能会出现状态不一致的情况
(1)跨多个JVM的分布式应用。
(2)同一个JVM中多个类加载器。
5. 典型应用场景
(1)骰子游戏。
(2)多语言支持。每种语言对应一个ResourceBundle,保存在一个HashMap之中。
(3)数据库序列生成器(多个)。
参考文献:
1. 《设计模式》 板桥里人
2. 《Java与模式》 阎宏
没有评论:
发表评论