私はIStrategyというインターフェースを持っています:
public interface IStrategy
{
}
IStrategyから継承するIClickStrategyという別のインターフェイスがあります。GetClicks()というメソッドがあります。
public interface IClickStrategy : IStrategy
{
void GetClicks(string[] args);
}
IClickStrategyから継承し、 GetClicks()メソッドを実装するクラス:
public class UnionenClicksController : IClickStrategy
{
Models.DMDelivery.Unionen model;
Logger logger;
public UnionenClicksController()
{
this.model = new Models.DMDelivery.Unionen();
this.logger = new Logger();
}
public void GetClicks(string[] args)
{
...
}
}
私の主な方法では、戦略の種類に応じて、何をすべきかを決定したいと思います。
IStrategy strategy = null;
そして、入力パラメーターがクリック情報を取得したい場合は、クラスUnionenClicksController()から GetClicks 関数を呼び出したいと思います。
しかし、ご覧のとおり、 GetClicks()関数が表示されません。ただし、戦略をIClickStrategyに変更すると、GetClicksが表示されます。しかし、クリック以外の別の戦略を持っている可能性があり、メイン メソッドの先頭でそれを宣言したくないので、それは私が望むものではありません。
私が間違っているのは何ですか?ありがとう。