免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
設(shè)計模式之Singleton模式和Strategy模式是什么

Singleton模式

單例模式,也交單子模式,有時候系統(tǒng)只需要擁有一個全局對象。

這種模式涉及到一個單一的類,該類負責(zé)創(chuàng)建自己的對象,同時確保只有單個對象被創(chuàng)建。這個類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實例化該類的對象。

一個類的返回對象一個引用(并且還是同一個)和一個獲得該實例的方法(通常是getInstance)

如果調(diào)用這個方法為空的話,就創(chuàng)建一個實例;如果調(diào)用這個方法不為空的話,就返回這個引用。

public class SingleObject {   //創(chuàng)建 SingleObject 的一個對象   private static SingleObject instance = new SingleObject();   //讓構(gòu)造函數(shù)為 private,這樣該類就不會被實例化   private SingleObject(){}   //獲取唯一可用的對象   public static SingleObject getInstance(){      return instance;   }   public void showMessage(){      System.out.println("Hello World!");   }}
public class SingletonPatternDemo {   public static void main(String[] args) {      //不合法的構(gòu)造函數(shù)      //編譯時錯誤:構(gòu)造函數(shù) SingleObject() 是不可見的      //SingleObject object = new SingleObject();      //獲取唯一可用的對象      SingleObject object = SingleObject.getInstance();      //顯示消息      object.showMessage();   }}
public class Singleton {      private static Singleton instance;      private Singleton (){}      public static synchronized Singleton getInstance() {      if (instance == null) {          instance = new Singleton();      }      return instance;      }  }

instance就是一個靜態(tài)對象,在全局是唯一的,在內(nèi)存空間上是固定的。

A,靜態(tài)對象的數(shù)據(jù)在全局是唯一的,一改都改。如果你想要處理的東西是整個程序中唯一的,弄成靜態(tài)是個好方法。 非靜態(tài)的東西你修改以后只是修改了他自己的數(shù)據(jù),但是不會影響其他同類對象的數(shù)據(jù)。

B,引用方便。直接用 類名.靜態(tài)方法名 或者 類名.靜態(tài)變量名就可引用并且直接可以修改其屬性值,不用get和set方法。

C,保持?jǐn)?shù)據(jù)的唯一性。此數(shù)據(jù)全局都是唯一的,修改他的任何一處地方,在程序所有使用到的地方都將會體現(xiàn)到這些數(shù)據(jù)的修改。有效減少多余的浪費。

D,static final用來修飾成員變量和成員方法,可簡單理解為“全局常量”。對于變量,表示一旦給值就不可修改;對于方法,表示不可覆蓋。參考

參考

Strategy 模式

在軟件開發(fā)中也常常遇到類似的情況,實現(xiàn)某一個功能有多種算法或者策略,我們可以根據(jù)環(huán)境或者條件的不同選擇不同的算法或者策略來完成該功能。

簡而言之,人說人話,鬼說鬼話。

如果我做A,就用A的相關(guān)算法

如果我做B,就用B的相關(guān)算法

EX:出行旅游

我們可以有幾個策略可以考慮:可以騎自行車,汽車,做火車,飛機。每個策略都可以得到相同的結(jié)果,但是它們使用了不同的資源。選擇策略的依據(jù)是費用,時間,使用工具還有每種方式的方便程度 。

Ex:排序策略

某系統(tǒng)提供了一個用于對數(shù)組數(shù)據(jù)進行操作的類,該類封裝了對數(shù)組的常見操作,

如查找數(shù)組元素、對數(shù)組元素進行排序等。現(xiàn)以排序操作為例,使用策略模式設(shè)計該數(shù)組操作類,

使得客戶端可以動態(tài)地更換排序算法,可以根據(jù)需要選擇冒泡排序或選擇排序或插入排序,

也能夠靈活地增加新的排序算法。


想要看到更多瑋哥的學(xué)習(xí)筆記、考試復(fù)習(xí)資料、面試準(zhǔn)備資料?想要看到IBM工作時期的技術(shù)積累和國外初創(chuàng)公司的經(jīng)驗總結(jié)?

敬請關(guān)注:

瑋哥的博客 —— CSDN的傳送門

瑋哥的博客 —— 簡書的傳送門

瑋哥的博客 —— 博客園的傳送門

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
設(shè)計模式系列 - 單例模式
【轉(zhuǎn)】京東面試題
Java單例模式深入詳解
設(shè)計模式學(xué)習(xí)筆記——單例(Singleton)模式
設(shè)計模式之單例模式
單例模式的八種寫法比較
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服