敏捷開發中的問題
阿新 • • 發佈:2018-12-24
有三種方式去演化我們的系統。
1.改變實現或者增加新的實現來替換舊的。
2.改變介面。
3.增加介面。
一.先說說我對多型的理解:
多型大部分都是執行時多型,也就是說已經形成了.exe檔案或者.jar檔案後,仍然有辦法去影響程式碼的執行!
但是,這僅僅是開發類庫的人要考慮的問題,因為他無法去改變exe檔案。
反面教材:微軟系統中的Ex結尾的函式一大堆,就是相當於擴充套件了原有的系統。相當醜陋。微軟為了給函式增加新的引數,很痛苦地設計了很多帶有length的結構體。
二.現在說一下大部分的開發狀態。
重點:大部分的開發狀態是類庫和客戶端程式碼都可以改的,在這個前提下考慮多型有什麼用處或許更有意義。下面論述一下:
前提條件:所有的原始碼都是可以修改的。
1.改變實現
改變實現有幾種方式,一種是用修改原始碼。一種是增加原始碼。
a. 修改原始碼的方式: 過多修改原始碼,將造成之前的程式碼丟失。
b. 增加新的程式碼,最小限度地修改原始碼。
方法a:按照面向物件設計原則:系統設計的一大目標是:可以擴充套件的,但是不可以修改的,這種想法應該直接被否決)
方法b:這種方法有更大的靈活性。前提條件是介面定義要好。能滿足可擴充套件性。
::不要修改函式,試著去增加函式。
::不要修改類,試著去增加類。
2.改變介面。
在改變介面方面,多型不僅無能為力,並且會增加耦合度。使得改變一個父類的介面後,子類的介面都必須重新考慮。
按照照面向物件設計原則:系統設計的一大目標是:可以擴充套件的,但是不可以修改的,這種想法應該直接被否決)
3.增加介面。
增加新的介面,似乎跟多型沒有什麼關係。其實還是有關係的。這個需要參照com原理。