개발자 님이 쓰신 글 :
: 아래의 클레스와 같은 선언 형식이 바람직한 Object-Oriented-Programming형식이 아니라고 할 수 있나요?
: 아래와 같이 선언한다고 해서 상속을 받지 못하는 것도 아니고 확장도 가능한것 같은데요.
: 의견 부탁 드립니다.
:
: class LogicFunctionList {
: private:
: struct LogicFunctionElm
: {
: LogicFunction *m_function;
: struct LogicFunctionElm *m_next;
: };
:
: static struct LogicFunctionElm *head;
: public:
: static void insert(LogicFunction *f);
: static void remove(LogicFunction *f);
: static LogicFunction *find(char *name);
: };
:
: LogicFunctionList::LogicFunctionElm *LogicFunctionList::head;
이 코드와 연관되는 다른 코드와의 사용 방법에 따라 효율적인지 비효율적인지 판단할 수 있을 것 같습니다.
내용만 봐서는 굳이 내부에 static 멤버 변수, 함수들을 선언한 목적을 알기 힘듭니다.
저렇게 설계한 클래스의 사용 목적이 시스템 내의 유일한 LogicFunction list를 관리하는 것이라면 Singleton 클래스로 구현하는것도 좋을듯 합니다.
OOP 디자인에 대한 범용(?)적인 개론은 여기서 찾아보세요.
http://architechie.blogspot.com/2005/10/oo-design-principles-quick-rundown.html
데비피아에 보면 설계에 대한 기본 개념 설명 무료 강좌도 있으니, 살펴보시면 도움이 되실겁니다.
http://www.devpia.com/DevStudy/Lecture/LectureList.aspx?type=d&sp=314
|