다음과 같이 (모든 개체 클래스는 공통 인터페이스가) 내가 뭘 할 수 있습니다 :스토어 클래스 정의 예를 나중에
MyDict.Add("A", MyAObjectClass); // Not an instance
MyDict.Add("B", MyBObjectClass);
MyDict.Add("C", MyCOjbectClass);
String typeIwant = "B"; // Could be passed to a function or something
MyCommonInterface myobject = MyDict[typeIwant]();
가 어떻게 이런 식으로 뭔가를 프로그래밍 할 수 있습니까?
이것은 내가 사전에 저장할 모든 단일 유형의 인스턴스를 만들 필요가 없으며 (실제로는 약간있을 수 있음) 대신 실제로 사용할 인스턴스 만 인스턴스로 만들 수 있습니다.
var dict = new Dictionary<String, Type>();
dict.Add("A", typeof(TextBox));
dict.Add("B", typeof(Button));
과 같이 그것에서 객체를 생성 :
의 * 거대한를 추가 왜 * 별도의 프레임 워크의 복잡성 (이 솔루션과 비교)? – SimonC
@ SimonC : 'Unity'와 같은 프레임 워크를 추가하면 "거대한"복잡성이 추가된다고 생각합니까? 코드는 실제로 인스턴스화 가능한 클래스의 목록이 커짐에 따라 감소 할 것입니다. – code4life
당신은 여전히 'name'매핑을 사용하여 프레임 워크를 구성하여 사전과 정확히 똑같은 방식으로 확장하려고 시도하지만 프레임 워크 구성 방법, API는 무엇인지 알아야합니다. , 어떤 버그가 존재하는지 등등, 당신의 코드를 관리하는 다른 모든 사람들도 마찬가지입니다. – SimonC