天天看點

架構,改善程式複用性的設計~第三講 實作一種功能的代碼隻能出現在一處(續)

針對這個問題,我覺得有必要再寫一個續集了,呵呵!

上回說的主要核心内容是将公用的部分從一個方法中提取出來,生成一個新的方法,這個重構中叫做“提取到方法”

,另外一個核心内容就是方法的”單一職責“,即一個方法幹一件事,将出現複雜事件時,将多個方法進行組合調用即可

這回主要說一個重構中的提取,其實不僅方法可以被提取,類,及整個項目也可以被提取,隻要他們有被提取的必要!

一個例子:對于一個資料實體操作的基類,它包括了其它所有實體類共有的屬性(DB)和方法(SubmitChanges),這可以了解了”提取到類“,當然這也是類的繼承及面向對象的一個例子。

還有一種更大程式上的提取,即”提取到項目“,就是說,它的整個項目都是其它項目公用的部分,所有把整個項目抽象出來

Entity.Commons這個項目是對所有解決方案的所有實體層進行的抽象,它裡面有對實體的分頁,實體參數組織,實體消息傳回及實體統一驗證等功能,都在Entity.Commons裡實作

EntityBase.cs代碼如下:

架構,改善程式複用性的設計~第三講 實作一種功能的代碼隻能出現在一處(續)
架構,改善程式複用性的設計~第三講 實作一種功能的代碼隻能出現在一處(續)

View Code

通過這篇文章,我們知道了,對于代碼重構,不僅僅隻對于方法而言,對于重構,也不僅僅隻對一個項目而言,它可能是項目與項目之間的重構。