设计模式-单例模式实例
(1)案例背景:
在实际的运用中,我们有时一个类不止需要产生一个对象,可能需要两个或者三个。在课上我们讲过,使用单例模式的思想可以实现多例模式,从而确保系统中某个类的对象只能存在有限个,请设计并实现代码,从而实现多例模式
(2)实现步骤:
- 由于本题的实现较为复杂,所以我们直接给出参考类图(见下一页)
- 根据类图,实现多例模式的代码
(3)案例总结:
单例模式主要适用于:
- 系统只需要一个实例对象,或者因为资源消耗太大而只允许创建一个对象
- 客户调用类的单个实例只允许使用一个公共访问点,除了该公共访问点,不能通过其他途径访问该实例
- 根据不同的需求,也可以按照单例模式的思想来实现多例模式
三、主要实验内容及结果:
代码结构:
详细代码:
Multiton.java:
package Multion; public class Multiton { private static Multiton multiton1 = new Multiton(); private static Multiton multiton2 = new Multiton(); private Multiton(){} public static Multiton getInstance(int random){ if (1 == random){ return multiton1; }else { return multiton2; } } public synchronized void random(){ int random = (int) (Math.random()*3+1); } }
Client.java:
package Multion; public class Client { private static Multiton multiton1; private static Multiton multiton2; private static Multiton multiton3; public static void main(String[] args) { System.out.println("详细设计实验报告 1904班白旭君 2019005368"); multiton1 = Multiton.getInstance(1); multiton2 = Multiton.getInstance(2); multiton3 = Multiton.getInstance(3); System.out.println(multiton1 == multiton2); System.out.println(multiton2 == multiton3); } }
实验结果截图:
说明第一次和第二次都创建了新的对象,而第三次没有创建新对象,仍然是第二次的对象。