单例模式?
该类只有一个实例, 并提供一个方式获取该实例
实现
方式一: 属性挂在实现
1. 创建一个 当前类 类型的 属性, new一个该类实例挂载到该属性
1. 使用 private 和 [statice](https://www.yuque.com/sanyanliangyu/mlsx1n/ex3n70) 修饰 (private: 保护该属性的安全,避免被赋值 statice: 确保该属性只有一份)
1. 提供一个**static方法** 返回该属性 (该方法命名规约: getSingleTon 或 newInstance)
package singleTon;
public class SingleTon {
private static SingleTon single = new SingleTon();
public static SingleTon getInstance() {
return single;
}
}
SingleTon s1 = SingleTon.getInstance();
SingleTon s2 = SingleTon.getInstance();
System.out.println(s1 == s2); // true
System.out.println(s1.equals(s2)); // true
饿汉式: 立即加载, 该类在加载时就被创建了, 立即创建但不会立即使用, 占用资源
1. 私有的构造方法
1. 私有静态当前类对象作为属性
1. 公有静态方法返回当前类对象
方式二: 懒汉式, 用的时候在创建, 不用不创建
package singleTon;
public class SingleTon {
private static SingleTon single;
public static SingleTon getInstance() {
if(single == null){
single = new SingleTon();
}
return single;
}
}
方式 …(未完待续)
参考资料: 链接
say: 设计模式是 经过多次迭代优化出来 解决某些问题的方案, 实现方式不唯一, 不同实现方式具有不同的优缺点
**