善用約束相依關係的軟體架構、守則及設計模式,有助於做到更易於閱讀、維護的設計。另外,我想提醒的是,在設計中的層次越高,相依性越應該降低。 許多物件導向程式語言,都提供權限存取飾詞,例如Public、Protected、Private等,允許程式人控制類別成員、類別本身,或類別Package對外的存取權限。過度開放,容易招致過多不必要的相依關係。
當一個類別或類別Package對外開放的元素過多,便成了門戶洞開的局面,其他類別便容易和它發生依賴關係。對於存取權限的控制,應該採取盡可能封閉的原則及態度,如此一來,才能降低外界對此類別認識的程度,以及可能發生的相依關係數量。
設計類別時,應避免循環相依關係 除了存取權限控制之外,妥善決定類別對外的介面長相,也很重要。程式人可以利用程式語言提供的介面(Interface)機制,為實作類別築起一道防火牆。而這道防火牆若要有效隔離因為改變而造成的火勢,介面就必須保有「最小相依性、最大穩定性」的原則。
使類別間的相依關係更井然有序 利用一些常見的架構,可以有效約束相依關係形成的結構。而其中最為常見、也相當有效的,便是所謂的分層架構(Layered Architecture)。
全文>>
沒有留言:
張貼留言