개요 지금까지 자연스럽게 사용한 단어들이 있다. 책임, 위임 그리고 협력이 오늘 배울 주제이다. 객체지향적으로 생각하고 설계를 하기 위해서는 꼭 배워야할 중요한 개념이다. 책임 객체지향 설계원칙중에는 단일책임원칙(SRP)이 있다. 모든 클래스는 하나의 책임만 가져야한다. 또는 클래스를 변경하려는 이유는 하나여야 한다고도 한다. 필자가 학교에서 배울 때 이 책임이라는 말이 와닿지가 않았었다. 책임이 무엇이길래 하나만 가져야하고 클래스를 변경하려는 이유라는 말은 또 무엇인가? 책임은 클래스가 책임져야 할 능력이다. 카페의 바리스타를 예로 들어보자. 바리스타가 가져야 할 능력은 우선 커피를 만들 수 있어야 한다는 것이다. 또 커피에 대한 설명을 할 수 있어야 하고, 크기가 작은 카페라 서빙까지 해야한다고 해보..
메시지 전송(메시징) JAVA에서 메시징은 C에서의 함수호출과 비슷하다. 메시징의 의미는 객체가 또 다른 객체의 인터페이스를 통해 어떠한 행위를 하라고 명령하는 것으로 필요하다면 데이터를 담아서 보낼 수도 있다. 여기서 말하는 인터페이스는 JAVA의 interface키워드를 말하는 것이 아니라 객체 간의 소통을 가능하게 해주는 public method를 뜻한다. 왜 메시징을 보내야 할까? 한 클래스 안에서 다 해결하면 안 되는 것인가? 물론 다들 답을 알고 있을 것이다. SOLID의 SRP원칙에 의해 하나의 클래스는 하나의 책임만 갖도록 설계해야 한다. 그렇기 때문에 자신이 못하는 것을 누군가 대신 해주 길 원할 때, 그것을 해줄 수 있는 객체에게 메시징을 하는 것이다. 덧붙이자면 이것을 행위의 책임을 ..