我有一个非常基本的问题(我不知道为什么我无法思考)。
我正在尝试做一些多态性。
我的界面如下所示:
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
}
}
}
所以我有主类,我希望它调用所有插件
但我希望它保存 OCP(开闭原则),所以如果我将来添加另一个插件类,主类不会改变。
这是主要课程
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
}
}