DTO模式与Memento模式

时间:2010-10-27 18:28:23

标签: java oop design-patterns data-transfer-objects memento

动态和实施方面DTO pattern(Fowler)和Memento pattern(GoF)之间有什么区别?可以是同一个班级吗?如果是,我如何命名它们(xxxDTO或xxxMemento)?他们在实施方面有任何主要差异吗?他们在MVP建筑中的位置在哪里?

感谢。

2 个答案:

答案 0 :(得分:1)

这两者经常用于非常不同的事情 - 你在哪里迷茫? DTO是关于数据传输(运营商类),而纪念品是关于跟踪变化并允许您回滚这些变化。除此之外,我不确定你的问题让你感到困惑。

答案 1 :(得分:1)

它们用于不同的目的。 DTO是用于在软件应用程序的层和/或层之间传输对象的设计模式。另一方面,Memento是另一种设计模式,它允许对象通过外化其状态来提供撤销功能,如果需要,以后可以恢复该状态。类的DTO类和Memento类可能看起来相似,普通的{Insert Technology Here}对象 - PO?O或看起来完全相同。但是,它们需要保持分离,因为它们将满足不同的需求,因此会发生不同的变化。例如,您可能有一天需要在DTO类中包含一个属性,但相同的属性对于对象的状态管理并不重要,因此不需要添加到memento类中。

另一个方面是DTO通常发生在你的课程之外,你的课程不知道他们应该关于DTO。事实上,有一些框架可以为您处理数据映射。另一方面,对于memento模式,您的类需要提供一个api,就像您在uml图中看到的那样,如CreateMemento,RestoreFromMemento等。