JAVA學習筆記(五十七)- 常用設計模式

來源:互聯網
上載者:User

標籤:設計模式   單例模式   餓漢模式-懶漢模式   原廠模式   

單例模式
/* * 單例模式 * 應用場合:有些對象只需要一個,此時可以使用單例模式 * 作用:保證整個應用中某個執行個體有且只有一個 * 類型:餓漢模式、懶漢模式 */public class Test04 {    // 1.將構造方式私人化,不允許外界直接建立對象    private Test04() {    }    // 2.建立類的唯一對象,使用private static修飾    private static Test04 instance=new Test04();    // 3.提供一個用於擷取唯一執行個體的方法,使用public static修飾    public static Test04 getInstance(){        return instance;    }}
懶漢模式
/* * 懶漢模式 * 區別: * 1.餓漢模式的特點,在類載入時會建立類的唯一執行個體,導致類載入比較慢,但運行時擷取對象的速度較快,安全執行緒 * 2.懶漢模式的特點,在第一次擷取執行個體時會建立類的唯一執行個體,導致第一次擷取時較慢,但類載入比較快,線程不安全 *  */public class Test05 {    // 1.將構造方法私人化    private Test05() {    }    // 2.聲明類的唯一執行個體,但並未執行個體化    private static Test05 instance;    // 3.提供一個用於擷取唯一執行個體的靜態方法    public static Test05 getInstance() {        if(instance==null){            instance=new Test05();//判斷如果為空白,則建立一個唯一的執行個體        }        return instance;    }}
原廠模式
/* * 原廠模式Factory Method * 簡單原廠模式 * 定義:建立一個工廠類,對實現了同一個介面的多個類進行執行個體化對象的操作 */public class Test06 {    public static void main(String[] args) {        Factory factory=new Factory();        Moveable m1=factory.product("plane");        Moveable m2=factory.product("bus");        Moveable m3=factory.product("bike");        m2.move();    }}interface Moveable {    public void move();}class Plane implements Moveable {    @Override    public void move() {        System.out.println("馬航死亡航班。。。");    }}class Bus implements Moveable {    @Override    public void move() {        System.out.println("昌河校車。。。");    }}class Bike implements Moveable {    @Override    public void move() {        System.out.println("捷安特單車");    }}/* * 生產產品的工廠類 */class Factory {    public Moveable product(String need) {        if (need.equals("plane")) {            return new Plane();        } else if (need.equals("bus")) {            return new Bus();        } else {            return new Bike();        }    }}

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.