首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在memento模式中创建Memento的默认实例?

如何在memento模式中创建Memento的默认实例?
EN

Stack Overflow用户
提问于 2010-09-16 06:48:03
回答 3查看 314关注 0票数 0

我使用Memento模式来保存多实例表单的属性,其中n个表单是由用户在父窗体中创建的。备忘录的目的是在用户关闭并稍后重新打开父窗体时重新获得相同数量的窗体及其设置。表单纪念品的保存是通过父窗体上的“保存”按钮完成的。所以我有两个挑战。

  1. 我需要在打开新表单时使用一组默认属性,那么在哪里设置这些默认值..在备忘录的默认空构造函数中,或者在某个地方(哪里?)在发起人那里?
  2. 接下来,我希望用户能够更改默认设置,从而创建自己的默认备忘录。如何/在何处保存这个文件,以及如何确定是否已设置了该默认备忘录?

当然,我可能可以通过某种方式来调整它,但是我想知道是否有一个通用的模式描述来解决这个问题,这样我就有了一个坚定的指导方针。

干杯!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-16 07:01:40

memento类的默认空构造函数应该是可以的,或者可以有一个CreateDefault()工厂方法,例如,如果您希望保留默认构造函数来初始化一个空白的memento,而不是预先设置的默认配置。

您可以使用许多不同的创造模式来指定自定义默认设置,包括http://en.wikipedia.org/wiki/Prototype_patternhttp://en.wikipedia.org/wiki/Abstract_factory_pattern

票数 1
EN

Stack Overflow用户

发布于 2010-09-16 21:21:13

您的描述与Memento patttern并不完全匹配。memento的全部要点是,只有要恢复的类的实例才知道有关Memento表示的任何内容。也就是说,Memento是关于隐藏状态,而不是允许客户端设置任意状态。

正如上面Mark所建议的,对于您的问题,还有其他更合适的模式可以使用。

票数 1
EN

Stack Overflow用户

发布于 2011-05-03 18:11:37

从你的问题和在伯利贝尔斯登的回答,我有一种感觉,直截了当的实施是足够的,没有模式需要‘强迫’在这里。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3724304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档