Post List

2015년 1월 4일 일요일

Class 설계는 Type 설계와 똑같이 취급하자.

* Class 설계는 Type 설계입니다. 새로운 Type을 정의하기 전에 고려해 볼 사항들을 점검해 보아야 합니다.

 좋은 Type은 일단 문법(syntax)이 자연스럽고, 의미구조(semantics)가 직관적이며, 효율적인 구현이 한 가지 이상 가능해야 한다.

 - 새로 정의한 Type의 객체 생성 및 소멸은 어떻게 이루어져야 하는가 ?

 - 객체 초기화는 객체 대입과 어떻게 달라야 하는가 ?

 - 새로운 Type으로 만든 객체가 값에 의해 전달되는 경우에 어떤 의미를 줄 것인가 ?

 - 새로운 Type이 가질 수 있는 적법한 값에 대한 제약은 무엇으로 잡을 것인가 ?

 - 기존의 Class 상속 계통망(inheritance graph)에 맞출 것인가 ?

 - 어떤 종류의 Type 변환을 허용할 것인가 ?

 - 어떤 연산자와 함수를 두어야 의미가 있을까 ?

 - 표준 함수들 중 어떤 것을 허용하지 말 것인가 ? (private)

 - 새로운 Type의 멤버에 대한 접근권한을 어느 쪽에 줄 것인가 ? (public, protected, private)

 - 선언되지 않은 인터페이스로 무엇을 둘 것인가 ?

 - 새로 만드는 Type이 얼마나 일반적인가 ? Class Template를 정의해야 하나 ?

 - 정말로 꼭 필요한 Type 인가 ?

댓글 없음:

댓글 쓰기