单例设计模式
---恢复内容开始---
概念
定义一个用法保证一个对象不被修改并且随时能调用这个对象就称为单例设计模式(共享数据)
例如:用户登录界面的输入账号密码
**保证账号密码的数据随着程序运行保存到支付界面。
public class UserInfo { String userName; String psw; static UserInfo info = null; public static UserInfo getUserInfo() { if (info == null) { info = new UserInfo(); Scanner input = new Scanner(System.in); System.out.println("请输入用户名"); String name = input.next(); System.out.println("请输入密码"); String psw = input.next(); info.userName = name; info.psw = psw; } return info; } }
public class Login { public static void login() { System.out.println("登陆页面"); UserInfo info = UserInfo.getUserInfo(); System.out.println(info.userName+info.psw); List.list(); } }
public class List { public static void list() { System.out.println("商品列表页面"); UserInfo info = UserInfo.getUserInfo(); System.out.println(info.userName+info.psw); Pay.pay(); } }
等等类推。。。。。
可以把该构造方法私有化,让其不能再别的类里创建对象。
package singledesign; //单例设计模式饿汉形式:加载类的时候对象就已经存在 public class designeh { //一个类只有一个实例 private static designeh ele01=new designeh(); //私有化构造器 private designeh(){ } public static designeh getInstace() { return ele01; } }
package singledesign; //单例之懒汉 public class designlh { private static designlh ele01=null; private designlh() { } public static designlh way01() { if(ele01==null) { synchronized (designlh.class) { if(ele01==null) { ele01=new designlh(); } } } return ele01; } }