go
オブジェクト実装:
タイプオブジェクトインターフェイス{ 物体() } タイプObjectImpl struct {} func(o *objectimpl)object(){}
movable実装:
型movable interface { 物体 movable() } 型movableimpl struct { ObjectImpl //組み込みオブジェクトの実装 } func(m *movableimpl)movable(){}
car実装:
型car struct { movableimpl //埋め込まれた移動可能な実装 //追加の車固有のフィールド }
Object --Immovable ----Building ----Mountain --Movable ----Car ----Bike例の使用法:
//ビルディングは、可動インターフェイスを実装していないため、可動型変数に割り当てることはできません。 var movable movable = building {} //ただし、不動と移動可能な実装オブジェクトの両方であるため、オブジェクト型変数に割り当てることができます。 var object object {} [}
Object --Immovable ----Building ----Mountain --Movable ----Car ----Bike埋め込みの利点:
空の方法の数を減らし、よりクリーンでより簡単なコードにつながります。 実装。
type Immovable interface { Object immovable() } type ImmovableImpl struct { ObjectImpl // Embedded Object implementation } func (i *ImmovableImpl) immovable() {}
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3