私は非常に基本的な質問をしています(私はなぜstrightを考えることができないのか分かりません)。簡単な多型を実現する方法を探している
多形性を試しています。
私はこのようなインターフェイスの外観を持っている:
Public interface Iplugin
{
void doSomthing(string _str);
}
私も
public class plugin1:Iplugin
{
void doSomthing(string _str)
{
if (_str=="1")
{
// do somthing 1
}
}
}
public class plugin2:Iplugin
{
void doSomthing(string _str)
{
if (_str=="2")
{
// do somthing 2
}
}
}
public class plugin3:Iplugin
{
void doSomthing(string _str)
{
if (_str=="3")
{
// do somthing 3
}
}
}
このインタフェースをimplamentいくつかのプラグインクラスは、だから私は、メインクラスを持っていると私はそれがすべてを起動したいですプラグイン
OCP(Open-Closed Principle)を保存したいので、今後別のプラグインクラスを追加すると、メインクラスは変更されません。
これは、あなたのプラグインを格納するコレクションを追加することができ
public class mainApp
{
Iplugin _context;
mainApp()
{
_context= new //new what??
}
bool func(string str)
{
_context.doSomthing(str);//I would like it to invoke all the plug in and also a future plugins that I will add
}
}
実際の質問は何ですか。あなたは確かにそこにいくつかの継承を必要とするdoSomethingバーチャルを作るために? – Ian
プラグインの作成は簡単なプログラミング作業ではありません。多くの標準的なプラクティスに従わない/できないことが多い理由です。プログラミングについて学ぶための例を見つけようとしているのであれば、少なくとも今はプラグインから遠ざかることをお勧めします。これが単なる学問的な運動でないならば、私を無視して自由に感じてください。 – Servy