一、類圖簡介

(1)簡介:

  類圖描述系統(tǒng)中的對象模型,以及存在于它們之間的各種靜態(tài)關(guān)系。類圖也展示類的性質(zhì)和操作,以及應(yīng)用于對象連接方式的約束,類之間的關(guān)系主要包括關(guān)聯(lián)、泛化以及組合等。

二、工廠模式簡介

(1)意圖:

  定義一個創(chuàng)建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創(chuàng)建過程延遲到子類進行。

(2)主要解決:
 主要解決接口選擇的問題。

(3)何時使用:
 我們明確地計劃不同條件下創(chuàng)建不同實例時。

(4)如何解決:
 讓其子類實現(xiàn)工廠接口,返回的也是一個抽象的產(chǎn)品。

(5)關(guān)鍵代碼:
 創(chuàng)建過程在其子類執(zhí)行。

(6)應(yīng)用實例:
 1、您需要一輛汽車,可以直接從工廠里面提貨,而不用去管這輛汽車是怎么做出來的,以及這個汽車里面的具體實現(xiàn)。

 2、Hibernate 換數(shù)據(jù)庫只需換方言和驅(qū)動就可以。

(7)優(yōu)點:
 1、一個調(diào)用者想創(chuàng)建一個對象,只要知道其名稱就可以了。

 2、擴展性高,如果想增加一個產(chǎn)品,只要擴展一個工廠類就可以。

 3、屏蔽產(chǎn)品的具體實現(xiàn),調(diào)用者只關(guān)心產(chǎn)品的接口。

(8)缺點:
 每次增加一個產(chǎn)品時,都需要增加一個具體類和對象實現(xiàn)工廠,使得系統(tǒng)中類的個數(shù)成倍增加,在一定程度上增加了系統(tǒng)的復(fù)雜度,同時也增加了系統(tǒng)具體類的依賴。這并不是什么好事。

(9)使用場景:
 1、日志記錄器:記錄可能記錄到本地硬盤、系統(tǒng)事件、遠程服務(wù)器等,用戶可以選擇記錄日志到什么地方。

 2、數(shù)據(jù)庫訪問,當用戶不知道最后系統(tǒng)采用哪一類數(shù)據(jù)庫,以及數(shù)據(jù)庫可能有變化時。

 3、設(shè)計一個連接服務(wù)器的框架,需要三個協(xié)議,"POP3"、"IMAP"、"HTTP",可以把這三個作為產(chǎn)品類,共同實現(xiàn)一個接口。

(10)注意事項:
 作為一種創(chuàng)建類模式,在任何需要生成復(fù)雜對象的地方,都可以使用工廠方法模式。有一點需要注意的地方就是復(fù)雜對象適合使用工廠模式,而簡單對象,特別是只需要通過 new 就可以完成創(chuàng)建的對象,無需使用工廠模式。如果使用工廠模式,就需要引入一個工廠類,會增加系統(tǒng)的復(fù)雜度。

 

三、網(wǎng)絡(luò)底層設(shè)計

(1)類圖:

 

 

(2)思考:

   如何將設(shè)計模式中的工廠模式應(yīng)用到網(wǎng)絡(luò)包的創(chuàng)建中?

四、數(shù)據(jù)存儲設(shè)計

(1)類圖:

 

( 數(shù)據(jù)存儲的類圖設(shè)計還會在后續(xù)開發(fā)過程中繼續(xù)不斷完善。)

 (2)說明:

  在這個項目中我們將以配置文件代替數(shù)據(jù)庫存儲,之后筆者還會記錄另一個類似《英雄聯(lián)盟》的MOBA類游戲的開發(fā)過程分享給大家。 

五、游戲計算處理設(shè)計

(1)類圖:

 

(游戲計算處理的類圖設(shè)計還會在后續(xù)開發(fā)過程中繼續(xù)不斷完善。)

  歡迎大家學(xué)習(xí)交流,如有不足懇請批評指正,轉(zhuǎn)載請注明出處,感謝您的支持。如果您也喜歡我的博客可以持續(xù)關(guān)注我,讓我們一起成長,共同進步。

  生活很精彩 剔除雜質(zhì),留下對編程的窮極探索 純粹追求。