1. 程式人生 > >Java設計模式思想(單列模式,工廠模式,策略模式,共23種設計模式)

Java設計模式思想(單列模式,工廠模式,策略模式,共23種設計模式)

a) 單例模式:單例模式核心只需要new一個例項物件的模式,

    比如資料庫連線,線上人數等,一些網站上看到的線上人數統計就是通過單例模式實現的,

    把一個計時器存放在資料庫或者記憶體中,當有人登陸的時候取出來加一再放回去,

    有人退出登陸的時候取出來減一再放回去,

    但是當有兩個人同時登陸的時候,會同時取出計數器,同時加一,同時放回去,這樣的話資料就會錯誤,

    所以需要一個全域性變數的物件給全部人使用,只需要new出一個例項物件,這就是單例模式的應用,

    並且單例模式節省資源,因為它控制了例項物件的個數,並有利於gc回收。

b) 策略模式:就是將幾個類中公共的方法提取到一個新的類中,

    從而使擴充套件更容易,保證程式碼的可移植性,可維護性強。

    比如有個需求是寫鴨子物件,鴨子有叫,飛,外形這三種方法,

    如果每個鴨子類都寫這三個方法會出現程式碼的冗餘,

    這時候我們可以把鴨子中的叫,飛,外形這三個方法提取出來,放到鴨父類中,

    讓每個鴨子都繼承這個鴨父類,重寫這三個方法,這樣封裝的程式碼可移植性強,

    當用戶提出新的需求比如鴨子會游泳,那麼對於我們oo程式設計師來講就非常簡單了我們只需要在鴨父類中加一個游泳的方法,

    讓會游泳的鴨子重寫游泳方法就可以了。

c) 工廠模式:簡單的工廠模式主要是統一提供例項物件的引用,通過工廠模式介面獲取例項物件的引用。

    比如一個登陸功能,後端有三個類,controller類,interface類,實現介面的實現類。

    當客戶端發出一個請求,當請求傳到controller類中時,controller獲取介面的引用物件,

    而實現介面的實現類中封裝好了登陸的業務邏輯程式碼。當你需要加一個註冊需求的時候只需要在介面類中加一個註冊方法,

    實現類中實現方法,controller獲取介面的引用物件即可,不需要改動原來的程式碼,這種做法是的可拓展性強。