網易云課堂Java進階學習筆記系列02 -- 第6周 設計原則

第六周 設計原則

代碼復制

消除代碼復制的兩個基本手段,就是使用方法和父類(將兩個子類的相同屬性和行為都放在父類里)。

耦合與聚合

對于類的設計來說,有兩個核心術語:耦合聚合

耦合這個詞指的是類和類之間的聯系。之前的章節中提到過,程序設計的目標是一系列通過定義明確的接口通信來協同工作的類。
耦合度反映了這些類聯系的緊密度。我們努力要獲得低的耦合度,
或者叫作松耦合(loose coupling)。

聚合與程序中一個單獨的單元所承擔的任務的數量和種類相對應有關,它是針對類或方法這樣大小的程序單元而言的理想情況下,
一個代碼單元應該負責一個聚合的任務(也就是說,一個任務可以被看作是一個邏輯單元)。一個方法應該實現一個邏輯操作,而一個類應該代表一定類型的實體。聚合理論背后的要點是重用
如果一個方法或類是只負責一件定義明確的事情,那么就很有可能在 另外不同的上下文環境中使用。
遵循這個理論的一個額外的好處是,當程序某部分的代碼需要 改變時,在某個代碼單元中很可能會找到所有需要改變的相關代碼段。

增加可擴展性

用封裝來降低耦合

  • Room類和Game類都有大量的代碼和出口相關
  • 尤其是Game類中大量使用了Room類的成員變量
  • 類和類之間的關系稱作耦合
  • 耦合越低越好, 保持距離是形成良好代碼的關鍵

可擴展性的意思就是
代碼的某些部分不需要經過修改就能適應將來可能的變化。 (減少硬編碼)

以框架+數據來提高可擴展性

  • 命令的解析是否可以脫離if-else
  • 定義一個Handler來處理命令
  • 用Hash表來保存命令和Handler之間的關系

最后, 我在Github上貼出了前后兩個版本的castle_game的實現代碼示例:

Github實現代碼.png

https://github.com/menglanyingfei/MOOC_Wengkai_Java/tree/master/code/castle_game

可以經過仔細對比, 第二個版本develop的代碼完全符合這些設計原則!



個人博客:(一個一直在堅持認真學習Java的大二學生)
博客地址

現在時間:
2017/07/16
23:05:00

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,556評論 25 708
  • 好的電影分三種,從好到更好:第一種是文以載道,好的電影能教會我們做人的道理,指引我們前進的方向。第二種是精彩,從劇...
    夏天的粽子閱讀 223評論 0 0
  • 大學里,我們不應該和別人比這些冠冕堂皇的東西,那么,大學里,我們到底應該和別人比什么? 我們要和別人比學習。我們既...
    16aa5fab5f62閱讀 208評論 0 0
  • 前沿 《Kotlin for android developers》中文翻譯 摘抄自:https://github...
    Jsonzhang閱讀 412評論 0 0