TIL
🌱 난 오늘 무엇을 공부했을까?
📌 객체지향의 사실과 오해 - 책임과 메시지
📍 자율적인 책임
- 다른 객체로부터의 요청을 처리하기 위해 수행하는 행동이 책임이다.
- 이 책임을 객체 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체가 자율적인 객체
- 어떻게가 아니라 무엇을 해야 하는가를 설명
📍 메시지
- 다른 객체에 접근할 수 있도록 해주는 것
- 어떤 메시지를 전송하느냐에 따라 책임이 결정된다.
- 외부로 부터 받은 메시지를 처리하기 위해 내부적으로 선택하는 방법을 메서드라고한다.
- 송신자와 수신자 사이의 결합도를 낮춤으로써 설계를 유연하고, 확장 가능하고, 재사용 가능하게 만든다.
- 메시지 중심으로 협력을 설계하면, 메시지가 객체를 선택할 수 있다.
- 수신 가능한 메시지가 모여 인터페이스를 구성한다.
🔗 다형성
- 동일한 메시지를 처리하는 방법이 수신자의 종류에 따라 달라질 수 있는 성질
- 서로 다른 객체들이 다형성을 만족시킨다는 것은 객체들이 동일한 책임을 공유한다는 것을 의미한다.
- 객체들의 대체 가능성을 이용해 설계를 유연하고 재사용 가능하게 만든다.
- 다형성을 사용하면 송신자가 수신자의 종류를 모스는 상태에서도 메시지를 전송할 수 있다. 즉, 수신자의 종류를 캡슐화 한다.
📍 인터페이스
- 객체가 수신할 수 있는 메시지의 목록으로 구성되며 객체가 어떤 메시지를 수신할 수 있는지가 객체가 제공하는 인터페이스의 모양을 빚는다.
- 외부에서 접근이 가능한 공개된 인터페이스를 공용 인터페이스라고함.
📍 구현과 인터페이스의 분리
- 구현은 내부 구조와 작동방식, 객체를 구성하지만, 공용 인터페이스에 포함되지 않는 모든 것.
- 훌륭한 객체는 인터페이스와 구현의 분리가 잘 되어있는 것.
🔗 캡슐화
- 객체의 자율성을 보존하기 위해 구현을 외부로부터 감추는 것.
📍 결론
- 책임이 자율적일수록 적절하게 추상화되며, 응집도가 높아지고, 결합도가 낮아지며, 캡슐화가 증진되고, 인터페이스와 구현이 명확이 분리되며, 설계의 유연성과 재사용성이 향상된다.