어떤 객체가 변경될 때 그 객체에게 의존하는 다른 객체도 함께 변경될 수 있다는 사실이 내포돼 있다.캡슐화의 목적은 변경하기 쉬운 객체를 만드는 것이다. 캡슐화를 통해 객체 내부로의 접근을 제한하면 객체와 객체 사이의 결합도를 낮출 수 있기 때문에 설계를 좀 더 쉽게
어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라.객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다.캡슐화와 접근 제어는 객체를 두 부분으로 나눈다.외부에서 접근 가능한 부분으로 이를 공용 인터페이스(publ
객체간의 상호작용다른 객체한테 메시지 전송을 한다.객체가 협력에 참여하기 위해 수행하는 로직객체들이 협력 안에서 수행하는 책임들이 모여 객체가 수행하는 역할애플리케이션 안에 어떤 객체가 필요하다면 그 이유는 단 하나여야 한다.Movie 영화라는 단어를 들었을 때 대부분
가장 중요한 것은 책임이다.객체들이 수행할 책임이 적절하게 할당되지 못한 상황에서는 원활한 협력도 기대할 수 없을 것이다.역할은 책임의 집합이기 때문에 책임이 적절하지 못하면 역할 역시 협력과 조화를 이루지 못한다.결국 책임이 객체지향 애플리케이션 전체의 품질을 결정하
"이 객체가 수행해야 하는 책임은 무엇인가"를 결정한 후에 "이 책임을 수행하는데 필요한 데이터는 무엇인가"를 결정한다.책임은 객체의 입장이 아니라 객체가 참여하는 협력에 적합해야 한다.메시지가 클라이언트의 의도를 표현한다.클라이언트는 단지 임의의 객체가 메시지를 수신