0

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

  1. 我需要在打开新表单时使用一组默认属性,那么我在哪里设置这些默认值.. 在备忘录的默认空构造函数中,或者在 Originator 的某个地方(在哪里?)?
  2. 接下来,我希望用户能够更改默认值,从而制作自己的默认纪念品。这是如何/在哪里保存的,我如何确定是否设置了这种默认纪念品?

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

干杯!

4

3 回答 3

1

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

您可以使用许多不同的创建模式来指定自定义默认值,包括原型抽象工厂

于 2010-09-16T07:01:40.393 回答
1

您的描述与 Memento 模式并不真正匹配。Memento 的全部意义在于,只有要恢复的类的实例才知道有关 memento 表示的任何事情。也就是说,Memento 是关于隐藏状态,而不是允许客户端设置任意状态。

正如上面 Mark Cidade 所建议的,还有其他更适合您的问题的模式。

于 2010-09-16T21:21:13.570 回答
0

根据您的问题和 Burleigh Bear 的回答中的评论,我觉得直接实施就足够了,这里不需要“强制”任何模式。

于 2011-05-03T18:11:37.583 回答