首頁 >後端開發 >C++ >重構如何消除共享資源管理中的好友依賴?

重構如何消除共享資源管理中的好友依賴?

Patricia Arquette
Patricia Arquette原創
2024-11-05 12:04:02196瀏覽

How Can Refactoring Eliminate Friend Dependencies in Shared Resource Management?

共享資源管理設計中的好友依賴移除和重構

在物件導向設計中,「好友」依賴引入了緊耦合類別之間並引起維護問題。若要在維持共享資源管理設計功能的同時消除此類依賴關係,建議採用多步驟重構流程。

第1 步:引入抽象介面

第一步涉及用抽象介面InternalInterface 取代「friend」依賴項,它定義了以前只能由友善類別存取的操作。

第 2 步:將操作移至介面

構成「呼叫」所依賴的操作從 ClassA 實作轉移到 InternalInterface 定義。

第3 步:連接介面和實作

到提供對InternalInterface的訪問,在ClassA和InterfaceInterface之間引入受保護的構造函數和受保護的泛化關係。

第4步:黏合組件

在ClassAAccessor建構子中,引入一個setInternalInterfaceRef()方法,允許ClassAAccessor從ClassAInternalInterface的引用。

第五步:使用Internal Interface進行存取

在ClassA中實作attachAccessor()方法將內部介面引用傳遞給 ClassAAccessor。

第6 步:最佳化耦合(選用)

為了進一步解耦,引入第二個介面InternalClientInterface 在ClassAAccessor 之間進行調解

優點:

  • 依據UML 2.2 標準消除「friend」依賴。
  • 遵守不鼓勵的編碼指南「friend」用法。
  • 提供更明確且可維護的設計。

缺點:

  • 可能會增加程式碼複雜性。
  • 需要可能影響設計佔用空間的抽象介面。
  • 受保護的泛化關係具有有限的 UML 表示支援。

以上是重構如何消除共享資源管理中的好友依賴?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn