如何編寫高質量的代碼二 - 類的設計

如何設計類, 關鍵點: 函數

  • 類的接口應該提供一向的抽象。不少問題都是由於違背了這個簡單的原則。
  • 類的接口應該隱藏某些東西,好比系統接口,設計決定,或者實現細節。
  • 應該優先採用聚合,除非你的兩個類的關係很明確 " is a " 的關係。好比花是植物,那麼類花應該從類植物繼承。
  • 繼承很強大,可是也添加了複雜性。和前面提到的管理軟件複雜度是有衝突的。
  • 類是控制/管理複雜度的基本工具。應該儘量的設計好每個 類來簡化系統的複雜度。

好的類接口 工具

設計類的關鍵在於設計類的接口。 spa

一個很差的類接口例子,每一個接口函數都不是很直觀地表達其目的。 .net

class Program {
public:
   ...
   // public routines
   void InitializeCommandStack();
   void PushCommand( Command command );
   Command PopCommand();
   void ShutdownCommandStack();
   void InitializeReportFormatting();
   void FormatReport( Report report );
   void PrintReport( Report report );
   void InitializeGlobalData();
   void ShutdownGlobalData();
   ...
   
private:
   ...
};
改進後的類設計
class Program {
public:
   ...
   // public routines
   void InitializeUserInterface();
   void ShutDownUserInterface();
   void InitializeReports();
   void ShutDownReports();
   ...
private:
   ...
};

爲何要建立類: 設計

  • 爲世界上真實的事物建模
  • 爲抽象對象建模
  • 減低複雜度
  • 隔離複雜度
  • 隱藏實現細節
  • 限制修改代碼的範圍
  • 隱藏全局數據
  • 集中控制點
  • 代碼重用
  • 打包相似的代碼族
  • 完成特殊的代碼重構

連接: code

 如何編寫高質量的代碼 orm

相關文章
相關標籤/搜索