動機(Motivation)
一個分層良好的系統,應該將處理用戶界面(UI)和處理業務邏輯(business
logic)的代碼分開。之所以這樣做,原因有以下幾點:(1)你可能需要使用數個不同的用戶界面來表現相同的業務邏輯;如果同時承擔兩種責任,用戶界面
會變得過分復雜;(2)與GUI隔離之后,domain objects的維護和演化都會更容易;你甚至可以讓不同的開發者負責不同部分的開發。
如果你遇到的代碼是以雙層(two-tiered)方式開發,業務邏輯被內嵌于用戶界面(UI)之中,你就有必要將行為分離出來。其中的主要工作就是函數的分離和搬移。但數據就不同了:你不能僅僅只是移動數據,你必須將它復制到新建部位中,并提供相應的同步機制。