Les interfaces peuvent être combinées en créant un type d'agrégat contenant plusieurs interfaces. Ce type est défini comme une structure contenant toutes les interfaces. Ensuite, fournissez des implémentations de méthodes pour chaque interface afin que le type d’agrégat implémente ces interfaces. Les types d'agrégats peuvent désormais être utilisés comme des interfaces normales, accédant au comportement de plusieurs interfaces.
Comment combiner plusieurs interfaces dans Go
Le langage Go permet plusieurs implémentations d'interfaces, nous permettant de créer des types plus flexibles et extensibles. La composition de plusieurs interfaces implique la création d'un type d'agrégat contenant toutes les interfaces à composer.
Création d'un type d'agrégat
Tout d'abord, nous devons créer une structure pour contenir les interfaces à combiner. Par exemple :
<code class="go">type Combo struct { Interface1 interface{ DoSomething() } Interface2 interface{ DoSomethingElse() } }</code>
Cette structure définit un type d'agrégat avec deux interfaces : Interface1
et Interface2
. Interface1
和 Interface2
。
实现接口
要使聚合类型实现这些接口,我们需要为每个接口提供一个方法实现。对于 Combo
类型,我们可以添加以下方法:
<code class="go">func (c Combo) DoSomething() { c.Interface1.DoSomething() } func (c Combo) DoSomethingElse() { c.Interface2.DoSomethingElse() }</code>
使用组合类型
现在我们可以像使用普通接口一样使用聚合类型:
<code class="go">func main() { c := Combo{ Interface1: new(Type1), Interface2: new(Type2), } c.DoSomething() c.DoSomethingElse() }</code>
在 main 函数中,我们创建了一个 Combo
类型的实例,其中包含实现了 Interface1
和 Interface2
的类型。然后我们可以调用 DoSomething
和 DoSomethingElse
Combo
, nous pouvons ajouter la méthode suivante : 🎜rrreee🎜🎜Utilisation des types Combo🎜🎜🎜Maintenant, nous pouvons utiliser les types d'agrégats comme les interfaces normales : 🎜rrreee🎜Dans la fonction principale, nous créons Une instance de type Combo
, qui contient des types qui implémentent Interface1
et Interface2
. On peut alors appeler les méthodes DoSomething
et DoSomethingElse
pour accéder au comportement des deux interfaces. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!