設計模式(七)——邁向新的設計方式
之前提到了使用Alexander提到的方式去思考,去構件一個系統。這種先找出各個模式的方式有時候並不適用,因爲在一些情況下,你很難找出某些隱含在系統之中的模式。
從OO的原則中,我們可以悟出一些東西。
“開閉原則”,需要我們對於修改封閉對擴展開放。
“依賴倒置原則”,要求我們總是依賴於抽象而不應該依賴於具體類,因爲具體類總是有變化的可能。
上面這2個原則,都涉及到了變化和不變這兩個概念。在系統中,變化是難免的,但我們需要尋找出一種以不變應萬變的方式,來構造一個靈活性高的系統。於是,提出了一種新的分析系統的方式——共性與可變性分析。
這種方法並不提倡一開始就找出各個實體間的關係,而是先弄清系統中有哪些東西,再去嘗試找到他們之間的關係。
方式如下:
首先,使用CVA找到問題域中存在的各種概念(共性)和具體的實現(可變性)。
其次,在所需功能的概念都找到後,繼續爲封裝這些概念的抽象定製接口。
然後考慮具體的實現將如何使用來實現相應的抽象。
當一個問題中有大量的變化時,可以使用分析矩陣,輔助自己進行共性、可變性的分析。