java軟體設計模式只單例設計模式

來源:互聯網
上載者:User

標籤:行為型   中介   div   資源   des   系統   .com   設計   網站   

概述

設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的;設計模式使代碼編製真正工程化;設計模式是軟體工程的基石脈絡,如同大廈的結構一樣。

設計模式分為三種類型,共23種
建立型模式:單例模式、抽象原廠模式、建造者模式、原廠模式、原型模式。
結構型模式:適配器模式、橋接模式、裝飾模式、組合模式、面板模式、享元模式、代理模式。

行為型模式:模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解譯器模式、狀態模式、策略模式、職責鏈模式、訪問者模式。

今天我們來看一下第一個單例模式的例子。

有時候我們伺服器的訪問量巨大的時候,使用普通的類方法為每一個訪問的使用者建立一個對象,而提供的功能大體相同時,就會極大的佔據伺服器的儲存空間,同時損耗CPU,這個時候,我們就希望在伺服器中只存在一個對象供所有的方法調用,這就是單例設計模式。

單例設計模式分為兩種:

  1. 餓漢設計模式  
  2. 懶漢設計模式

  我們先來看看餓漢設計模式,先看一下執行個體

  

/** * @author MyPc 單例設計模式 */class Test {static Test test = new Test();// 私人化構造方法private Test() {System.out.println("這是單例設計模式");}public static Test getTest() {return test;}//main方法public static void main(String[] args) {Test t1 = Test.getTest();Test t2 = Test.getTest();if(t1 == t2){System.out.println("對象相同");}}}

  在這個單例設計設計模式中,我們能夠看到一個很重要的一步,就是私人化構造方法。

  我們知道在new一個類對象時,會同時調用該類的構造方法,所以預設情況構造方法是public型的,在單例設計模式中,我們將類的構造方法設為private,就會讓別的類無法建立該類的對象,同時我們在該類的內部建立一個靜態該類的自己的對象,並向外提供一個靜態方法調用這個對象,這樣就能保證該類的對象始終只有一個。這就是餓漢單例模式,下面我們再看一下懶漢單例模式:

/** * @author MyPc 單例設計模式 */class Test {static Test test;// 私人化構造方法private Test() {System.out.println("這是單例設計模式");}public static Test getTest() {if(test == null){test = new Test();}return test;}//main方法public static void main(String[] args) {Test t1 = Test.getTest();Test t2 = Test.getTest();if(t1 == t2){System.out.println("對象相同");}}}

  相比較餓漢單例模式,餓漢單利模式會存在一個問題,那就是始終會在記憶體中存在這個對象,不管有沒有使用,如果沒有使用的話也會造成資源的浪費,這時候懶漢設計模式在單線程下就能避免這個問題,我們能夠看到執行個體中我們一個開始並沒有建立對象,只是聲明了一下該類的對象,在需要具體調用時再判斷是否已經存在該類的對象了,如果存在,返回對象,如果不存在,new一個該對象再返回。

  單例設計模式在某些情況能夠極大的節省資源,非常適合訪問量大的網站使用。

java軟體設計模式只單例設計模式

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.