複数のインターフェイスを含む集約タイプを作成することで、インターフェイスを結合できます。この型は、すべてのインターフェイスを含む構造体として定義されます。次に、各インターフェイスのメソッド実装を提供して、集約型がこれらのインターフェイスを実装できるようにします。集約型を通常のインターフェイスと同様に使用して、複数のインターフェイスの動作にアクセスできるようになりました。
Go で複数のインターフェースを組み合わせる方法
Go 言語では複数のインターフェースを実装できるため、より多くのインターフェースを作成できます。フレキシブルかつ拡張可能なタイプ。複数のインターフェイスを構成するには、構成するすべてのインターフェイスを含む集約タイプを作成する必要があります。
集約型の作成
まず、結合するインターフェイスに対応する構造を作成する必要があります。例:
<code class="go">type Combo struct { Interface1 interface{ DoSomething() } Interface2 interface{ DoSomethingElse() } }</code>
この構造体は、Interface1
と Interface2
という 2 つのインターフェイスを持つ集約タイプを定義します。
インターフェイスの実装
集約型にこれらのインターフェイスを実装させるには、各インターフェイスにメソッド実装を提供する必要があります。 Combo
タイプの場合、次のメソッドを追加できます。
<code class="go">func (c Combo) DoSomething() { c.Interface1.DoSomething() } func (c Combo) DoSomethingElse() { c.Interface2.DoSomethingElse() }</code>
コンボ タイプの使用
これで、集計タイプを aggregate タイプと同じように使用できるようになります。通常のインターフェイス:
<code class="go">func main() { c := Combo{ Interface1: new(Type1), Interface2: new(Type2), } c.DoSomething() c.DoSomethingElse() }</code>
main 関数で、Interface1
と Interface2
を実装する型を含む Combo
型のインスタンスを作成します。 。その後、DoSomething
メソッドと DoSomethingElse
メソッドを呼び出して、両方のインターフェイスの動作にアクセスできます。
以上がgolangで複数のインターフェースを組み合わせる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。