C++에서 전략 패턴을 구현하고 싶지만 의심 스럽습니다. Alwyas의 전략 패턴 예제는 코드에 따르는 것입니다 (C# 참조). MainClass와 같은 클라이언트를 수정하여 구체적인 전략을 선택하는 것이 동적 인 방법입니다. 예를 들어, 전략 이름을 main 메소드의 args [] 매개 변수로 전달하십시오. 이 패턴의 속성을 수정하지 않고 어떻게 구현할 수 있습니까? 우리는 C++에 반사가없는전략 패턴 C++
namespace StrategyPatterns
{
// Interface definition for a Sort algorithm
public interface ISort
{
void Sort(List<string> list)
}
// QuickSort implementation
public class CQuickSorter : ISort
{
void Sort(List<string> list)
{
// Here will come the actual imp
}
}
// BubbleSort
public class CBubbleSort : ISort
{
void Sort(List<string> list)
{
// The actual imp of the sort
}
}
public class Context
{
private ISort sorter;
public Context(ISort sorter)
{
// We pass the context the strategy to use
this.sorter = sorter;
}
public ISort Sorter
{
get{return sorter;)
}
}
public class MainClass
{
static void Main()
{
List<string> myList = new List<string>();
myList.Add("Hello world");
myList.Add("Another item");
Contexto cn = new Contexto(new CQuickSorter());
cn.Sorter.Sort(myList);
cn = new Contexto(new CBubbleSort());
cn.Sorter.Sort(myList);
}
}
}
이 언어는 무엇입니까? atleast 1 오타 및 여러 가지 구문 오류 .. C# 더 보이는? –
@ KarthikT가 답한 것처럼, C++의 문자열에서 직접 할 수는 없지만 그의 대답은 한 가지 방법입니다. "Dependency Injection"은 동적 인 것들을 포함하여 모든 종류의 방법으로 이런 종류의 일을하는 프레임 워크를보기위한 좋은 검색 용어 일 것입니다. –