1장.
- 객체를 자율화 시켜서 그 객체의 책임이 있는 동작은 객체 스스로 처리하게 하자.
- 그 객체 로직은 객체 내부에서 동작하자.
- 그럼 캡슐화가 이루어진다. 외부에서 내부의 동작을 알 필요가 없어짐.
- 또한 응집도가 높아진다 객체의 책임을 객체가 책임지기 때문에.
- 결합도가 낮아진다 다른외부에서 이 객체를 가져다 내부작업을 할 필요가 없어졌기 때문에.
- 절차지향은 메인클래스에서 모든것을 처리하며 나머지 객체는 단지 데이터보관소에 불과할 뿐이다.
- 하지만 객체지향은 모든 객체에 자율성이 존재하며 캡슐화가 이루어지며 응집도가 높고 결합도가 낮아진다.
- 객체지향은 제어의 흐름이 각 객체에 적절하게 분산.
- 절차지향은 제어의 흐름이 중앙에 한 클래스에 밀집되어있음.
- 설계를 어렵게 만드는것은 의존성. 쓸데없는 의존성을 제거해서 객체간의 결합도를 낮추자.
- 결합도를 낮추기 위해서는 캡슐화를 하고 객체의 응집도도 높이자.
- 결합도와 자율성이 충돌되는 시점이 있다.
- 이때는 트레이드오프로 잘 비교해보고 결정하자.
- 객체지향적 설계는 유지보수에 강점을 준다.