質問

違いは何ですか DTOパターン(ファウラー著)そして メメント柄(GoF による) 動機と実装の面では?同じクラスでもいいですか?「はい」の場合、どのように名前を付ければよいですか (xxxDTO または xxxMemento)?実装において主な違いはありますか?彼らの居場所はどこにあるのか MVP 建築?

ありがとう。

役に立ちましたか?

解決

この 2 つは、まったく異なる目的で使用されることがよくありますが、どこで混同されていますか?DTO はデータ送信 (キャリア クラス) に関するものですが、memento は変更を追跡し、それらの変更をロールバックできるようにするものです。それ以上、あなたの質問から何があなたを混乱させているのかわかりません。

他のヒント

それらはさまざまな目的に役立ちます。DTO は、ソフトウェア アプリケーションの層間や層間でオブジェクトを転送するために使用される設計パターンです。一方、Memento は、必要に応じて後で復元できる状態を外部化することで、オブジェクトが元に戻す機能を提供できるようにする別の設計パターンです。クラスの DTO クラスと Memento クラスは、単純な古い {Insert Technology Here} オブジェクト (PO?O) に似ている場合もあれば、まったく同じに見える場合もあります。ただし、これらは異なるニーズに対応し、異なる進化を遂げるため、分離しておく必要があります。たとえば、いつか DTO クラスにプロパティを含める必要があるかもしれませんが、同じプロパティはオブジェクトの状態管理にとって重要ではないため、memento クラスに追加する必要はありません。

もう 1 つの側面は、DTO は通常、クラスの外で行われ、クラスは DTO について本来の認識を持っていないことです。実際、データ マッピングを処理するフレームワークが存在します。一方、memento パターンの場合、クラスは、CreateMemento、RestoreFromMemento などの UML 図に見られるような API を提供する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top