freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο蟮脑O(shè)計(jì)原則與模式(編輯修改稿)

2025-02-03 01:57 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 及該問(wèn)題的解決方案的核心。這樣,你就能一次又一次地使用該方案而不必做重復(fù)勞動(dòng) ” 。盡管 Alexander所指的是城市和建筑模式,但他的思想也同樣適用于面向?qū)ο笤O(shè)計(jì)模式,只是在面向?qū)ο蟮慕鉀Q方案里,我們用對(duì)象和接口代替了墻壁和門窗。兩類模式的核心都在于提供了相關(guān)問(wèn)題的解決方案。 幾個(gè)基本的設(shè)計(jì)模式 —— 單例模式 ? 1:環(huán)境: ? 幾乎在每個(gè)應(yīng)用程序中,都需要有一個(gè)從中進(jìn)行全局訪問(wèn)和維護(hù)某種類型數(shù)據(jù)的區(qū)域。在面向?qū)ο蟮模?OO)系統(tǒng)中也有這種情況,在此類系統(tǒng)中,在任何給定時(shí)間只應(yīng)運(yùn)行一個(gè)類或某個(gè)類的一組預(yù)定義數(shù)量的實(shí)例。 ? 例如,當(dāng)使用某個(gè)類來(lái)維護(hù)增量計(jì)數(shù)器時(shí),此簡(jiǎn)單的計(jì)數(shù)器類需要跟蹤在多個(gè)應(yīng)用程序領(lǐng)域中使用的整數(shù)值。 此類需要能夠增加該計(jì)數(shù)器并返回當(dāng)前的值。又如建立目錄、數(shù)據(jù)庫(kù)連接、 Windows針對(duì)所有用戶都應(yīng)有一個(gè)回收站等,都需要這樣的單對(duì)象的操作。 ? 對(duì)于這種情況,所需的類行為應(yīng)該僅使用一個(gè)類實(shí)例來(lái)維護(hù)該整數(shù),而不是使用多個(gè)類實(shí)例來(lái)維護(hù)該整數(shù)。 ? 最初,人們可能會(huì)試圖將計(jì)數(shù)器類實(shí)例只作為靜態(tài)全局變量來(lái)創(chuàng)建。 這是一種通用的方法,但實(shí)際上只解決一部分問(wèn)題;它解決了全局可訪問(wèn)性問(wèn)題,但沒(méi)有采取任何措施來(lái)確保在任何給定的時(shí)間只運(yùn)行一個(gè)類實(shí)例。應(yīng)該由類本身來(lái)負(fù)責(zé)只使用一個(gè)類實(shí)例,而不是由類用戶來(lái)負(fù)責(zé)。應(yīng)該始終不要讓類用戶來(lái)監(jiān)視和控制運(yùn)行的類實(shí)例的數(shù)量。 幾個(gè)基本的設(shè)計(jì)模式 —— 單例模式 ? 2:?jiǎn)栴} ? 采用什么方法來(lái)控制創(chuàng)建類實(shí)例 的個(gè)數(shù) ,然后確保在任何給定的時(shí)間只創(chuàng)建一個(gè)類實(shí)例。這會(huì)確切地給我們提供所需的行為,并使客戶端不必了解任何類細(xì)節(jié)。 ? 3:解決方案 S in g le t o n I n s t a n ce : S in g le t o n+ g e t I n s t a n ce ( ) S in g le t o n ( )私有的靜態(tài)屬性,類的唯一實(shí)例 將構(gòu)造函數(shù)私有化 通過(guò)共有的函數(shù)返回 Instance 幾個(gè)基本的設(shè)計(jì)模式 —— 單例模式 ? 一般 Singleton模式通常有如下兩種種形式,第一種叫餓漢式,第二種叫懶漢式。餓漢式在類一實(shí)例化的時(shí)候就初始化了instance;懶漢式僅在調(diào)用時(shí)才初始化。 ? public class Singleton { private Singleton(){ } private static Singleton instance = new Singleton()。 public static Singleton getInstance() { return instance。 } } ? public class Singleton { private static Singleton instance = null。 public static synchronized Singleton getInstance() { if (instance==null) instance= new Singleton()。 return instance。 } } 幾個(gè)基本的設(shè)計(jì)模式 —— 單例模式 ? 注意到 lazy initialization形式中的 synchronized,這個(gè)synchronized很重要,如果沒(méi)有 synchronized,那么使用getInstance()是有可能得到多個(gè) Singleton實(shí)例。 幾個(gè)基本的設(shè)計(jì)模式 —— 工廠模式 ? 為什么要有工廠模式? ? 就拿我們一開(kāi)始學(xué)到的手機(jī)發(fā)短信的例子,如果沒(méi)有“手機(jī)工廠”,就等于將手機(jī)對(duì)象的創(chuàng)建工作放到所有的客戶( Client)中完成,沒(méi)有實(shí)現(xiàn)良好的封裝和重用,也違背了 OCP原則與 DI
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1