18.인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자
제대로 쓰기엔 쉽고 엉터리로 쓰기엔 어려운 인터페이스를 개발하려면 사용자가 실수할 만한 종류를 알고있어야한다. 만약 날짜를 나타내는 클래스에 넣을 생성자를 생성한다고 가정해보자. class Date { public: Date(int month, int day, int year); }; 별 문제 없어 보이지만, 사용자가 저지를 수 있는 오류는 존재한다. 매개변수 순서가 잘못될 수있고, 월과 일에 해당하는 숫자가 범위에 벗어날 수 있다. Date d(30, 3, 1995); //3, 30 1995여야함 Date d(3, 40, 1995); //40일은 존재하지 않음 오타 혹은 실수로 저지를법한 실수다. 어처구니 없는 코드가 컴파일되는 상황을 막는 방법으로 타입 시스템을 들 수있다. struct Day { e..
2021. 12. 14.