私は現在 Go を学習中ですが、重複コードの量を減らすための最善の方法について人々の洞察をお待ちしています。
該当部分のフォルダ構成は以下のとおりです。
リーリー私の specations
フォルダーには 2 つの「ストレージ」インターフェイスがあります:
store/postgres
フォルダーには、タスクとタグの実装が含まれています (リポジトリ モード)。
私が見た質問:
私の handlers
フォルダーには、ストレージ インターフェイスの 1 つからの入力を受け入れる構造体があります:
これらのハンドラーには、API パスにマップされるメソッドが含まれています:
リーリー リーリー 各ハンドラーの List
メソッドは、各ストアで使用されるインターフェイスを除き、基本的に同じであることがわかります。
重複コードを減らすためにこの設定を変更するにはどうすればよいですか?
私は最初、ジェネリックを使用してこの問題を解決できると考えました。例:
リーリーしかし、これは各型をハンドラーにマッピングすることを意味しますが、これは現実的な解決策ではないと思います。
DTO とインターフェイスをより適切にマッピングする方法について何か提案はありますか?
ヘルパー関数を使用できます
リーリーそうすると、
が得られます リーリー以上がGo で DTO をマッピングするときに重複コードの量を減らすの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。