一、设计模式:简单来说即“套路”;

单例模式:类的单例模式,就是采取一定的方法,保证整个软件系统中,对某个类智能存在一个对象实例;

  如何实现:饿汉式 vs 懒汉式

饿汉式:当程序未调用时,就创建好了实例;

懒汉式:什么时候调用对象,什么时候创建;
三、区分饿汉式 和 懒汉式?
  饿汉式:坏处:导致对象加载时间过长;好处:线程安全;
  懒汉式:好处:延迟加载,坏处:线程不安去;
 
 四、应用:网站的计数器,应用程序的日志应用,数据库连接池,。。。。

看代码:

1 public class Day14Singleton14 {
2 public static void main(String[] args) {
3 Bank bank1 = Bank.getInstance();
4 Bank bank2 = Bank.getInstance();
5 System.out.println(bank1 == bank2);
6
7 Order11 order1 = Order11.getInstance();
8 Order11 order2 = Order11.getInstance();
9 System.out.println(order1 == order2);
10 }
11 }
12
13 //单例模式的饿汉式
14 class Bank{
15 //1.私有化构造器;
16 private Bank() {
17
18 }
19 //内部创建类的对象
20 //要求此对象是静态的;这里对象还没有调用就创建了对象
21 private static Bank instance = new Bank();
22 //提供公共的静态方法,返回类的对象
23 public static Bank getInstance() {
24 return instance;
25 }
26 }
27 //单例模式的饿汉式
28 class Bank1{
29 //1.私有化构造器;
30 private Bank1() {
31
32 }
33 //内部创建类的对象
34 //要求此对象是静态 final:防止用户恶意更改实例;这里对象还没有调用就创建了对象;
35 private static final Bank1 instance = new Bank1();
36
37 }
38
39
40 //单例模式的懒汉式实现
41 class Order11{
42 //1.私有化构造器;
43 private Order11() {
44
45 }
46 //声明当前类对象,没有初始化
47 //要求此对象是静态的;这里没有创建对象
48 private static Order11 instance = null;
49 //提供公共的静态方法,返回类的对象,调用getInstance时,才创建对象;
50 public static Order11 getInstance() {
51 if(instance == null) {
52 instance = new Order11();
53 return instance;
54 }
55 return instance;
56 }
57

 

我从来不相信什么懒洋洋的自由。我向往的自由是通过勤奋和努力实现的更广阔的人生。 我要做一个自由又自律的人,靠势必实现的决心认真地活着。