亚欧洲精品在线观看,窝窝影院午夜看片,久久国产成人午夜av影院宅,午夜91,免费国产人成网站,ts在线视频,欧美激情在线一区

java語(yǔ)言

Java單例設(shè)計(jì)模式

時(shí)間:2025-04-25 03:36:03 java語(yǔ)言 我要投稿

Java單例設(shè)計(jì)模式

  導(dǎo)語(yǔ):如何設(shè)計(jì)一例簡(jiǎn)單的JAVA語(yǔ)言呢?如何快速掌握設(shè)計(jì)的入門(mén)技巧呢?下面跟著小編一起來(lái)學(xué)習(xí)吧!

  (1)設(shè)計(jì)模式:

  解決某類(lèi)問(wèn)題行之有效的方法,是一種思想,是規(guī)律的總結(jié)

  (2)用來(lái)保證某個(gè)類(lèi)在內(nèi)存中只有一個(gè)對(duì)象

  (3)保證唯一性的思想及步驟

  **為了避免其他程序建立該類(lèi)對(duì)象,先禁止其他程序建立該類(lèi)對(duì)象,即將構(gòu)造函數(shù)私有化

  **為了其他程序訪問(wèn)到該類(lèi)對(duì)象,須在本類(lèi)中創(chuàng)建一個(gè)該類(lèi)私有對(duì)象

  **為了方便其他程序訪問(wèn)到該類(lèi)對(duì)象,可對(duì)外提供一個(gè)公共訪問(wèn)方式

  比如API中的Runtime類(lèi)就是單例設(shè)計(jì)模式。

  (4)單例設(shè)計(jì)模式的兩種方式

  A:餓漢式 當(dāng)類(lèi)加載的時(shí)候,就創(chuàng)建對(duì)象。

  class Student

  {

  private Student(){}

  private static final Student s = new Student();

  public static Student getInstance()

  {

  return s;

  }

  }

  B:懶漢式 當(dāng)使用的使用,才去創(chuàng)建對(duì)象。

  class Student

  {

  private Student(){}

  private static final Student s = null;

  public static Student getInstance()

  {

  if(s==null)

  {

  //線程1就進(jìn)來(lái)了,線程2就進(jìn)來(lái)了。

  s = new Student();

  }

  return s;

  }

  }

  餓漢式和懶漢式的區(qū)別:

  **

  餓漢式是類(lèi)一加載進(jìn)內(nèi)存就創(chuàng)建好了對(duì)象;

  懶漢式則是類(lèi)才加載進(jìn)內(nèi)存的時(shí)候,對(duì)象還沒(méi)有存在,只有調(diào)用了getInstance()方法時(shí),對(duì)象才開(kāi)始創(chuàng)建。

  **

  懶漢式是延遲加載,如果多個(gè)線程同時(shí)操作懶漢式時(shí)就有可能出現(xiàn)線程安全問(wèn)題,解決線程安全問(wèn)題

  可以加同步來(lái)解決。但是加了同步之后,每一次都要比較鎖,效率就變慢了,所以可以加雙重判斷來(lái)提高程序效率。

  注:開(kāi)發(fā)常用餓漢式,因?yàn)轲I漢式簡(jiǎn)單安全。懶漢式多線程的時(shí)候容易發(fā)生問(wèn)題


【Java單例設(shè)計(jì)模式】相關(guān)文章:

JAVA設(shè)計(jì)模式之單例模式07-29

JAVA多線程并發(fā)下的單例模式應(yīng)用11-09

java設(shè)計(jì)模式:工廠模式11-07

java設(shè)計(jì)模式:DAO模式08-18

java設(shè)計(jì)模式:多例模式08-12

java設(shè)計(jì)模式:裝飾模式07-08

解析Java的設(shè)計(jì)模式編程之解釋器模式的運(yùn)用05-19

Java的設(shè)計(jì)模式編程中責(zé)任鏈模式的運(yùn)用的實(shí)例講解07-07

Java的結(jié)構(gòu)型模式07-09