假设人们有一个像Person这样的类,它在Setting类中实现了一些默认设置。这些设置可能是诸如“默认标题”或“需要名字”之类的东西。相应地,像Address类的其他类也可能有一些默认设置。 Setting类将每个设置保存到持久存储中。静态方法或OO替代方法?
应该在每个类中实现一个静态方法,如包含这些设置的“SetDefaults()”,以便外部方法可以针对每个对象类型调用SetDefaults()?例如Person.SetDefaults()然后Address.SetDefaults()?
或者是否有一些更好的面向对象的方式来做到这一点?
[更新:这不可能是在构造因为SetDefaults()应该从外部类在特定时间点被调用,而不是每一个对象被构造时间]
我认为你需要解释SetDefaults的行为 - 如果当一个对象被超过的IoC构建这些默认值都是只读/工厂显然是一个好答案。如果预计在施工后使用时会出现重置或其他状态变化的影响,那么我认为Mark的扩展建议是最好的答案,但我真的质疑当时的设计 - 这听起来像是两种截然不同的方法。 – annakata 2009-06-03 08:38:28