Go のポリモーフィズムを理解する: よくある誤解を暴く
ポリモーフィズムはオブジェクト指向プログラミングの基本的な概念ですが、オブジェクト指向プログラミングでは別の形式になります。行く。コードでのポリモーフィズムの実装に関連する特定の問題に対処することで、問題を明確にしましょう。
Go では、ポリモーフィズムは、型が実装する必要がある一連のメソッドを定義するインターフェイスを通じて実現されます。オブジェクト指向言語のような継承を使用する代わりに、Go は合成を使用して、共通の動作を持つ型を作成します。
コードでは、さまざまな型に共通のフィールドを含む「基本」型 BaseTX を作成しようとしています。取引の。ただし、継承の代わりに合成を使用する必要があるため、共有フィールドを格納するメタデータ構造体を作成します:
トランザクション タイプにはメタデータが埋め込まれます:
これらのトランザクション タイプで共通の操作を実行するには、共有トランザクションを処理するメタデータのlogicAndSaveTXメソッドを定義します。ロジック:
次に、共通の動作を拡張する RewardTX とAllowanceTX のカスタムlogicAndSaveTX メソッドを定義します:
メタデータをトランザクション タイプに構成し、各タイプに特定のメソッドを実装することで、継承や基本クラスに依存せずに、目的の動作を実現します。これは、インターフェイスと合成を通じてポリモーフィズムを処理するための「適切な Go 方法」です。
以上がGo で継承なしでポリモーフィズムを実現する方法: 実践例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。