(原創) 如何克服複雜度? (OO)

我整理出克服複雜度主要有三種方法:

1.Abstraction
  將問題抽象化,也就是所謂的『好讀書,不求甚解』,先將問題的精神抓到,重視其整體架構,忽略細節部分。若以OO來看,就是用class,encapsulation實現。若以電機領域常用的Gajski Y-Chart圖來看,就是structure部分。

2.Generalization
  將問題分類,向上即為『歸納法』(induction),若以OO技術,就是inheritance,interface;向下則為『演繹法』(conduction);若以OO而言,就是polymorphism,這些在Y-Chart圖屬於behavior部分。

3.Decomposition
 就是Divide and Conquer,這是人類最原始解決複雜度的方式,也是最直覺得方式。OO用association、aggregation、composition等方式實做,在Y-Chart則屬physical部分。

舉例來說,一本厚厚的書該怎麼念?

1.Abstraction:先略讀了解整本書概念要講什麼?對自己領域是否有幫助,若有幫助則將閱讀優先權提高,若較沒幫助則先放著有時間再讀,畢竟時間有限,要將時間用在刀口上。

2.Decomposition:將本書作邏輯切割,將有興趣且和領域相關的先念,當然若有時間一章一章的念更好。

3.Generalization:將讀到的東西做整理,想辦法『吾道一以貫之』,和自己的領域相結合,這樣讀到的東西經過消化後才會是你的。


這三招其實非常好用,可以用這三招克服各領域的複雜度!!

posted on 2007-03-18 11:32  真 OO无双  阅读(670)  评论(0编辑  收藏  举报

导航