Я должен выполнить несколько действий. Каждый из них имеет несколько общих элементов, поэтому они должны наследоваться от одного класса. Допустим, они выполняют некоторые веб-действия, поэтому базовый класс -
public class WebAction
{
private ServerData _serverData;
public WebAction(ServerData serverData)
{
_serverData = serverData;
}
}
Кроме того, каждое из этих действий необходимо выполнить, поэтому в базовом классе у меня также должен быть какой-то Execute()
метод. Проблема в том, что каждый из этих объектов делает немного разные вещи, поэтому он должен принимать разные параметры. Мой вопрос - ведьма способ лучше всего достичь этого?
Сначала я думал о каком-то объекте конфигурации, например, g. 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();
С этим (если есть) способом лучше?