誰かがこの「建築のジレンマ」を手伝ってくれないかと思っていたのですが、
投稿、ドキュメント、写真など、さまざまなタイプ(クラス)からいくつかのオブジェクトを取得しています
プレゼンテーション レイヤーでは、それらを 1 つのコンテナーにレンダリングする必要があることがわかりました。フォルダーがあり、内部にあらゆる種類のオブジェクトを持つことができる共有ポイント ライブラリの例を考えてみてください。
プロパティで並べ替えたい (PublishingDateTime としましょう)
それらを並べ替えたい場合、それらはすべて同じインターフェイスを実装する必要があることを知っているので、それらを次のように実装しました(ISortingCapableとしましょう)
さて、私のドメイン層では、インターフェースは問題ないように見えます。
しかし、その後、これらのインスタンス化されたオブジェクトが DTO としてプレゼンテーション層に移動した (それらはもはや同じドメイン オブジェクトではない) => DTO を MVC のビューのモデルと見なすため、それは役に立たないことに気付きました。
簡単に言えば:
プレゼンテーション層にある場合
List<PostDTO>
List<PictureDTO>
List<DocDTO>
=> シンプルなオブジェクト、シンプルなレンダリング。
ここで、それらを 1 つのコンテンツ ストリームに並べ替えたいと思います。
私の質問は、DTO がまったく同じインターフェイスを再度実装する必要があるかどうかです。それとも、間違った側から問題を見ていますか?