오브젝트; 명령-쿼리 분리
퍼블릭 인터페이스에 오퍼레이션을 정의할때 참고할 수 있는 지침을 제공. 루틴 Routine : 어떤 절차를 묶어 호출 가능하도록 이름을 부여한 기능 프로시저 Procedure : 정해진 절차에 따라 내부의 상태를 변경하는 루틴의 종류. 부수효과를 발생시킴 함수 Function : 어떤 절차에 따라 필요한 값을 계산해서 반환하는 루틴의 종류. 부수효과가 없다. 명령 Command : 객체의 상태를 변경하는 명령은 반환값을 가질 수 없다. 쿼리 Query : 객체의 정보를 반환하는 쿼리는 상태를 변경할 수 없다. 질문이 답변을 수정해서