共有リソース管理設計におけるフレンド依存関係の削除とリファクタリング
オブジェクト指向設計では、「フレンド」依存関係により密結合が導入されます。クラス間の移動が発生し、メンテナンスの懸念が生じます。共有リソース管理設計の機能を維持しながらそのような依存関係を削除するには、複数ステップのリファクタリング プロセスをお勧めします。
ステップ 1: 抽象インターフェイスの導入
最初のステップでは、「フレンド」の依存関係を抽象インターフェイス InternalInterface に置き換えます。これは、以前はフレンドのみがアクセスできる操作を定義します。 class.
ステップ 2: 操作をインターフェイスに移動する
「呼び出し」依存関係を構成する操作は、ClassA 実装から InternalInterface 定義に移動されます。
ステップ 3: インターフェースと実装
Interface へのアクセスを提供するには、保護されたコンストラクターと、ClassA と InternalInterface の間に保護された一般化関係を導入します。
ステップ 4: コンポーネントを接着する
ClassAAccessor コンストラクターに、setInternalInterfaceRef() メソッドを導入します。これにより、ClassAccessor は ClassA から InternalInterface への参照を取得できるようになります。
ステップ 5: アクセスに内部インターフェイスを使用する
ClassA にattachAccessor() メソッドを実装して、内部インターフェイスを渡します。 ClassAccessor へのインターフェイス参照
ステップ 6:結合の最適化 (オプション)
さらに分離するには、ClassAAccessor と InternalInterface の間を仲介する 2 番目のインターフェイス InternalClientInterface を導入します。
利点:
欠点:
以上がリファクタリングにより、共有リソース管理におけるフレンドの依存関係をどのように排除できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。