VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 五(十二)单例模式

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


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


  如何实现:饿汉式 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 }
复制代码

 

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

来源:https://www.cnblogs.com/lixiuming521125/p/13387615.html

相关教程