看不清
√十天内免登录忘记密码?
还没账号?马上注册
请复制以下内容发送给他人,通过邀请链接访问完成注册,您即可享受长期收益:
适合人群: Java高级工程师,Java高级程序员,Java架构师
课程标签: Java高级工程师Java高级程序员Java架构师JavaSE单例模式
一、概述
多例模式(Multiton Pattern),这种设计模式也属于对象创建型模式,本质上就是单例模式的推广
定义:
一个类有多个实例且由类本身创建和管理自己的实例,并向外部提供访问点。
二、理解
关键点:
1)一个类可有多个实例
如果一个类仅有一个实例,就是单例模式(所以单例模式是多例模式的特例)
如果一个类有有限个实例,称为有上限多例(如枚举)
如果一个类的实例个数不确定,称为无上限多例
2)所有实例是由类自己创建
即所有实例外部不能创建(私有化构造器)
3)所有实例都是由类自己管理(什么时候创建,怎么创建,存放地点,什么时候销毁)
所以实例要保存在类的静态量中
4)要向外部提供访问点(静态变量/静态方法)
提供一个公开的静态方法访问即可
注:普通的类也可以有多个实例,但其实例一般是外部new创建和管理的,这种不是多例模式
三、实现
1、有上限的多例类
分几种情况
a)如果此类实例数量较小,可直接使用静态变量一个一个保存即可
如一副麻将牌中只有两个骰子,这可以创建一个骰子类,有两个实例
b)如果此类实例数量较多,这可以使用静态的聚集(如数组,集合等)来保存
如一副扑克牌有54张,这可以创建一个Card类,有54个实例
2、无上限的多例类
这里的无上限不是无限,而是指无法确定实例的个数,如
一个颜色类,不同的实例表示不同的颜色,我们不确定外部会使用哪些颜色,外部一般也不可能使用全部颜色
所以没有必要提前创建所有的颜色实例,而是使用公开静态变量提供常用颜色访问,
公开静态方法提供所有颜色访问且提供缓冲功能(再次访问同一个颜色,则不新建)
四、总结
多例模式的重点是实例是由类自己创建和管理,这是区分多例模式的最重要的一点
javase的API中使用到多例模式的有
java.util.ResourceBundle
java.util.Local
java.text.NumberFormat
java.awt.Color
....
欢迎进入课程讨论区,你可以与本课程的老师和同学在这里交流。如果你有课程相关的问题,请发到老师答疑区;经验、思考、创意、作品、转帖请发到综合讨论区。欢迎分享,鼓励原创,杜绝广告,请大家共同维护一个包容、积极、相互支持的交流氛围,谢谢。了解更多请点击“讨论区使用规则”↗
给该课程打分:
序号
标题
1
13 单例模式 .zip
共26节 · 3小时59分钟
项目管理工具Maven入门+实战教程
¥29.004245人在学
共8节 · 7小时28分钟
AP计算机科学A(APcomputer science A)复习备考攻略视频教程
¥700.0043966人在学
共25节 · 7小时17分钟
分布式集群任务调度解决方案视频教程
¥399.0013435人在学
共52节 · 9小时50分钟
10亿级订单数据解决方案以及实现(真实工业界案例)视频教程
¥399.0020518人在学
评价
给该课程打分: