私はいくつかのアクションを実装する必要があります。それぞれに共通の要素があるため、クラスから継承する必要があります。その基底クラスが継承されたクラスの違いをどのように扱いますか?
public class WebAction
{
private ServerData _serverData;
public WebAction(ServerData serverData)
{
_serverData = serverData;
}
}
で、彼らはいくつかのウェブアクションを行うとすると、言うことができます。また、このアクションのそれぞれが実行する必要があり、その基底クラスに私はまたExecute()
方法のいくつかの並べ替えを持っている必要があります。問題は、このオブジェクトのそれぞれが少し違うことなので、それは異なるパラメータを取るべきです。私の質問は - 魔法はこれに到達するのに最適ですか?
最初は、私はいくつかの設定オブジェクト、e、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();
これらの(もしあれば)方法が良いですか?