一、DRY(Don't repeat yourself)
解釋:**不要重復自己** >多次遇到同樣的問題,就應該**抽象**出一個通用的解決方法,而不是重復同樣的代碼。二、YAGNI(You aren't gonna need it)
解釋:**你不會需要它** > 除了最核心的功能,其他功能一概不要部署,盡可能快、盡可能簡單地讓軟件運行起來。 > 即**不要為了抽象而抽象**,不要讓代碼一開始就變成華而不實的空中樓閣。三、Rule Of Three
解釋:**三次原則** > 第一次用到某個功能時,你寫一個特定的解決方法; >第二次又用到的時候,你拷貝上一次的代碼; >第三次出現的時候,你才着手"抽象化",寫出通用的解決方法。 > >理由: >(1)省事。如果一種功能只有一到兩個地方會用到,就不需要在"抽象化"上面耗費時間了。 >(2)容易發現模式。"抽象化"需要找到問題的模式,問題出現的場合越多,就越容易看出模式,從而可以更准確地"抽象化"。 >(3)防止過度冗余。如果一種功能同時有多個實現,管理起來非常麻煩,修改的時候需要修改多處。在實際工作中,重復實現最多可以容忍出現一次,再多就無法接受了。總結語:
該抽象的時候一定要抽象,不該抽象的時候就不要抽象,事不過三,三次或以上的重復代碼再做抽象化。參考:
http://www.ruanyifeng.com/blog/2013/01/abstraction_principles.html