共享資源管理設計中的好友依賴移除和重構
在物件導向設計中,「好友」依賴引入了緊耦合類別之間並引起維護問題。若要在維持共享資源管理設計功能的同時消除此類依賴關係,建議採用多步驟重構流程。
第1 步:引入抽象介面
第一步涉及用抽象介面InternalInterface 取代「friend」依賴項,它定義了以前只能由友善類別存取的操作。
第 2 步:將操作移至介面
構成「呼叫」所依賴的操作從 ClassA 實作轉移到 InternalInterface 定義。
第3 步:連接介面和實作
到提供對InternalInterface的訪問,在ClassA和InterfaceInterface之間引入受保護的構造函數和受保護的泛化關係。
第4步:黏合組件
在ClassAAccessor建構子中,引入一個setInternalInterfaceRef()方法,允許ClassAAccessor從ClassAInternalInterface的引用。
第五步:使用Internal Interface進行存取
在ClassA中實作attachAccessor()方法將內部介面引用傳遞給 ClassAAccessor。
第6 步:最佳化耦合(選用)
為了進一步解耦,引入第二個介面InternalClientInterface 在ClassAAccessor 之間進行調解
優點:
缺點:
以上是重構如何消除共享資源管理中的好友依賴?的詳細內容。更多資訊請關注PHP中文網其他相關文章!