1. 程式人生 > >敏捷開發中的問題

敏捷開發中的問題

有三種方式去演化我們的系統。
1.改變實現或者增加新的實現來替換舊的。
2.改變介面。
3.增加介面。

一.先說說我對多型的理解:
    多型大部分都是執行時多型,也就是說已經形成了.exe檔案或者.jar檔案後,仍然有辦法去影響程式碼的執行!
    但是,這僅僅是開發類庫的人要考慮的問題,因為他無法去改變exe檔案。

    反面教材:微軟系統中的Ex結尾的函式一大堆,就是相當於擴充套件了原有的系統。相當醜陋。微軟為了給函式增加新的引數,很痛苦地設計了很多帶有length的結構體。

二.現在說一下大部分的開發狀態。
   重點:大部分的開發狀態是類庫和客戶端程式碼都可以改的,在這個前提下考慮多型有什麼用處或許更有意義。下面論述一下:
前提條件:所有的原始碼都是可以修改的。

1.改變實現

     改變實現有幾種方式,一種是用修改原始碼。一種是增加原始碼。

  a. 修改原始碼的方式:    過多修改原始碼,將造成之前的程式碼丟失。

  b. 增加新的程式碼,最小限度地修改原始碼。

方法a:按照面向物件設計原則:系統設計的一大目標是:可以擴充套件的,但是不可以修改的,這種想法應該直接被否決

方法b:這種方法有更大的靈活性。前提條件是介面定義要好。能滿足可擴充套件性。

      ::不要修改函式,試著去增加函式。

      ::不要修改類,試著去增加類。 

2.改變介面。

  在改變介面方面,多型不僅無能為力,並且會增加耦合度。使得改變一個父類的介面後,子類的介面都必須重新考慮。

按照照面向物件設計原則:系統設計的一大目標是:可以擴充套件的,但是不可以修改的,這種想法應該直接被否決)

3.增加介面。

  增加新的介面,似乎跟多型沒有什麼關係。其實還是有關係的。這個需要參照com原理。