集中原則——軟體設計之道

來源:互聯網
上載者:User

為什麼要集中?因為軟體經常需要修改,而集中便於修改。

舉例來說明:

1.魔術數字,也就是一些孤立的數字,不能直觀看出有什麼意義的數字。這種數字可以用常量來代替,任何重複使用到的地方,都可以用這個常量來代替,如果你需要修改這個數值,那麼只需要修改常量的定義就可以了,而不需要多處修改。

2.函數把演算法集中在一塊了。你可以在每次用到該演算法的時候,都直接寫代碼(或者複製過來),但是如果你用函數去代替,那麼當改進演算法品質的時候,任何用到該演算法的地方,都能同時得到改善。

3.對象把演算法和狀態集中在一塊了。根據狀態機器理論,程式的實質就是從一個狀態跳轉到另外的一個狀態,而對象很好的實踐了這個理論。如果狀態和對象各處一方,修改的時候就要到處找了。

 

另外說說設計上的事情。

寫入程式碼是設計者需要避免的,所謂的寫入程式碼,就是不易於修改的狀態。因此集中原則是對付這種狀態的其中一個好方法。

如何才能徹底的解決寫入程式碼問題,第一個是把每一個潛在的修改點獨立隔離起來,也就是把功能點集中起來。各個功能點之間不應該相互牽涉,避免牽一髮而動全身之虞。第二點,從架構上,高層面上,提供一個良好的擴充介面。

又可以說,先從低層次上把功能點分離了,再從高層次上把功能點銜接起來形成一個系統。

可見:

第一點是功能點的集中。

第二點是業務的集中。

這樣就能做到修改方便,解決硬式編碼問題。這裡只是兩個層次的抽象,可以設想一個足夠複雜的系統,可以抽象到三層以上,但是總的策略是不變的,底層各部分的分離,在高層再融合起來。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.