나는 매우 기본적인 질문을 가지고있다.단순한 다형성을 구현하는 방법을 찾는
일부 다형성을 시도하고 있습니다.
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
}
}
진짜 질문이 무엇인지 잘 모르시겠습니까?당신은 분명히 거기에 상속을 필요로하고 do something something virtual? – Ian
플러그인을 만드는 것은 간단한 프로그래밍 작업이 아니며, 종종 많은 표준 사례를 따르지 않거나 따르지 않는 이유입니다. 프로그래밍에 대해 배워보기 위해 예제를 찾으려는 사람이라면 적어도 지금은 플러그인을 사용하지 않는 것이 좋습니다. 이것이 학문적 인 운동이 아니라면 나를 무시해도 좋습니다. – Servy