[완료]C++ dynamic class calling
글쓴이: sjlee96 / 작성시간: 수, 2008/12/17 - 12:30오전
안녕하세요?
C++ 프로그래밍하다가 클래스 호출에 관해서 궁금한 점이 있어서 질문드립니다.
어떤 독립적인 클래스가 한 500개 있어요..
Class A,Class B,Class C,Class D,Class E ... 뭐 이렇게요..
(사실은 Finite Element Method 관련 코딩을 하고 있습니다. 위의 클래스들은 각 element에 상응하는 요소들이죠..)
그리고, 프로그램이 input text file을 읽는데, "A"라는 text를 읽으면 class A를 호출해야 하고,
"B"라는 text를 읽으면 class B를 호출하고... 이런 식입니다.
문제는 이런 클래스들이 너무 많아서 (제 실력으로는) 이렇게 프로그래밍을 해야한다는 게 문제예요.
A* pA;
B* pB;
C* pC;
...
...
if (text file에서 "A"라는 글자를 읽으면)
pA = new A;
else if (text file에서 "B"라는 글자를 읽으면)
pB = new B;
else if ...
...
이런 식으로 else if문을 엄청 지저분하게 써야 한다는 데 있어요...
혹시 좀 깔끔하게 할 수 있는 방법이 없을까요?
고수님들, 미리 감사드립니다.
Forums:
factory..
factory패턴에 대해서 알아보세요...
근데 뭐 그래도 그닥 깔끔해지지는 않을 것 같네요..
FEM을 하신다면.. 그냥
FEM을 하신다면.. 그냥 마음편하게 if else를 눈에 잘 띄게 열거해버리세요... 그게 훨씬 나을듯
keep it simple !
C++에서 리플렉션을
C++에서 리플렉션을 지원하는 것도 아니니, 중복 없이 하기는 힘들 것 같습니다.
Event Handler에서 많이
Event Handler에서 많이 씁니다만.
단순하게 Factory Method 배열이나 Map을 사용하면
관리하기 쉬워집니다.
___________________________________
Less is More (Robert Browning)
정말 아름다운 코드네요...
감사합니다. 이대로 하니 구현이 잘 되더군요.
클래스가 꼭 그렇게
클래스가 꼭 그렇게 많아야하는 건가요?
정확하게 어떤 동작을 하는 것인지는 모르겠지만 설계를 좀 바꿀 여지가 있을거같기도 하군요.
단순하게 예시하신 코드를 만드는 것(반복 작업)이라면 코드를 자동으로 생성하는 스크립트같은 것을 만드는 것도 하나의 방법이 될겁니다.
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
댓글들 감사합니다.
정말 많이 도움되었습니다.
댓글 달기