19. 문제점:
1. BBwindow 는 Ival_box의 상위개념이 아니다.
2. BBwindow 와 Swing 등의 UI 라이브러리를
두개 이상 사용해야 한다면 복잡해 진다.
20. 문제점:
● BBwindow, CWwindow, IBwindow, LSwindow 각각의 라
이브러리로 전환 될때 마다 거의 모든 프로그램이 리빌
드 된다.
● 두개 이상의 라이브러리를 동시에 사용 할 수 없다.
21. 추상 클래스 활용
원칙
1. 인터페이스와 구현 세부사항은 떨어뜨리자.
2. 인터페이스에 데이타를 두지말자. 데이타가
있으면 의존성이 생긴다.
3. 구현 세부를 수정하더라도 Ival_Box 계열의
클래스는 컴파일되지 않게 하자.
4. 다중 UI 시스템이 동작되게 하자.
27. 객체 생성 위치를 국한시키기
factory 클래스
상속으로 구현하지 않고, 다른 방식으로 구현할
수 있다는 것을 잠깐 눈요기로 보여준다.
이에 대한 자세한 내용은 뒤에 나올거라 생각한
다. 아니면 템플릿이 그 해결책이라고 생각하는
지도~
28. 바른 프로그래밍을 위한 고수의 조언
1. 타입필드는 반드시 피할 것.
2. 복사손실(slicing)을 피하려면 객체의 포인터 혹은 참조
자를 사용해야 한다.
3. 깔끔한 인터페이스 제공에 목적을 두고 있다면 추상 클
래스를 사용하자.
4. 인터페이스를 최소화하려면 추상 클래스를 사용하자.
5. 인터페이스로부터 구현 세부사항을 차단하려면 추상 클
래스를 사용하자.
6. 사용자 코드를 건드리지 않은 채로 기존 함수의 구현코
드를 새로 추가하려면 관련 함수들이 가상 함수로 되어
있어야 한다.
29. 7. 사용자 코드의 재컴파일을 최소화하려면 추상 클래스를
사용하자.
8. 구현 세부사항이 여러개가 될 수 있는 경우를
허용하려면 역시 추상 클래스를 사용할 것.
9. 가상 함수를 가진 다형성 클래스에는 반드시 가상
소멸자가 있어야 한다.
10. 추상 클래스에는 대개 생성자가 필요없다.
11. 겹치지 않는 개념들은 내부 표현 데이터도 반드시
분리해 놓도록 하자.