DTO pattern(由Fowler开发)和Memento pattern(由GoF开发)在动机和实现方面有什么不同?它可能是相同的类吗?如果是,我如何命名它们(xxxDTO或xxxMemento)?它们在实现上有什么主要区别吗?它们在MVP架构中的位置是什么?
谢谢。
发布于 2010-10-28 02:51:12
这两者通常用于非常不同的事情-您在这里哪里混淆了?DTO是关于数据传输(运营商类)的,而memento是关于跟踪更改并允许您回滚这些更改的。除此之外,我不确定是什么让你对你的问题感到困惑。
发布于 2010-10-28 03:15:35
它们服务于不同的目的。DTO是一种设计模式,用于在软件应用程序的层和/或层之间传输对象。另一方面,Memento是另一种设计模式,它允许对象通过外部化其状态来提供撤消功能,如果需要,可以在以后恢复该状态。一个DTO类和一个类的Memento类可能看起来很相似,简单老式的{此处插入技术} object - PO?O或者看起来完全一样。然而,它们需要保持分离,因为它们将服务于不同的需求,因此会以不同的方式发展。例如,有一天您可能需要在DTO类中包含一个属性,但该属性对于对象的状态管理并不重要,因此不需要添加到memento类中。
另一方面,DTO通常发生在您的类之外,而您的类并不了解DTO。事实上,有一些框架可以为您处理数据映射。另一方面,对于memento模式,您的类将需要提供一个api,就像您在CreateMemento、RestoreFromMemento等uml图中看到的那样。
https://stackoverflow.com/questions/4036441
复制相似问题