【发布时间】:2012-04-12 21:40:02
【问题描述】:
我必须执行一些操作。它们中的每一个都有一些共同的元素,因此它们应该从一个类继承。可以说,他们正在做一些网络操作,所以基类是
public class WebAction
{
private ServerData _serverData;
public WebAction(ServerData serverData)
{
_serverData = serverData;
}
}
此外,每个动作都需要执行,所以在基类中我也应该有某种Execute() 方法。问题是,这个对象中的每一个都做了一些不同的事情,所以它应该采用不同的参数。我的问题是 - 女巫方式最适合达到这个目标?
起初我在想一些配置对象,例如Execute(IWebActionConfig config)。在这种情况下,我可以使用如下对象:
LoginWebAction loginWebAction = LoginWebAction(staticServerConfig);
LoginWebActionConfig = new LoginWebActionConfig { someData = "foo" };
loginWebAction.Execute(loginWebActionConfig);
但是创建一个额外的对象树有什么意义吗?通过属性配置 WebAction 的每个子项可能会更好?
LoginWebAction loginWebAction = LoginWebAction(staticServerConfig);
loginWebAction.someData = "foo";
// Execute will throw exception when someData not set
loginWebAction.Execute();
用这些(如果有的话)方法更好吗?
【问题讨论】:
标签: .net design-patterns inheritance