디자인 패턴은 재사용 가능한 코드를 작성하기 위한 도구이다. 이번 항목에서 디자인 패턴을 알아 볼 수 있겠는가? 코드 class string; class Record; class PrimaryKey; class GenericTableAlgorithm { public: GenericTableAlgorithm( const string& table ); virtual ~GenericTableAlgorithm(); /*성공했을 경우 true를 리턴하며, 1. 물리적으로 테이블 레코드를 읽는다. 2. 수행해야 하는 열인지 판단하기 위해 Filter를 실행한다. 3. 수행하는 열의 목록이 완료되었을때 각 열에 대해 ProcessRow를 호출한다. */ bool Process(); private: /*열을 처리해야 ..
클래스 설계 검색 결과
클래스 설계? 타입 설계? C++에서 새로운 클래스를 설계하는다는것은 타입을 설계하는 것과 같다. 왜냐하면 그 클래스에는 operator 오버로드, 메모리 할당 및 해제, 객체 초기화 및 종료 등 모두 클래스에서 하기 때문이다. 타입은 어떻게 설계 할것인가? EC++ 3판에서는 많은 것들 중 고수들은 몇가지 질문을 스스로 던저 자신을 괴롭히며 만든다고 한다. 1. 새로 정의한 타입의 객체 생성 및 소멸은 어떻게 이루어져야 하는가? 2. 객체 초기화는 객체 대입과 어떻게 달라야 하는가? 3. 새로운 타입으로 만든 객체가 값에 의해 전달되는 경우에는 어떤 의미를 줄 것인가? 4. 새로운 타입이 가질 수 있는 적법한 값에 대한 제약은 무엇으로 잡을 것인가? 5. 기존의 클래스 상속 계통망에 맞출 것인가? 6...
이유 1. 소프트웨어는 항상 변화하기 때문이다. 구현 방법 1. 끊임없이 공부 해라; 2. 대입과 복사생성은 모든 클래스에 대해 처리해 두어야 한다. 3. 변경이 필요할 때 그 변경의 영향이 제한된 부분만 미치도록 코드를 설계한다. 4. 힘 닿는데까지 캡슐화 한다. 5. 구현에 관련된 상세한 부분은 외부에 노출시키지 않는다. 6. 개발 도구가 지원하는 기능에 맞추어 파일 범위(file-scope)의 정적 변수나 정적 함수를 선언하도록 한다. 7. 가상 기본 클래스가 필요한 설계는 피하는것이 좋다. 명언 아리송하면 int의 동작원리대로 만들지어다(when in doubt, do as the ints do) 클래스 설계가 점점 어려워 지는 시점이다.
최근댓글