객체지향 프로그래밍
프로그래밍 개발방법론
사람이 현실을 바라보는 방법을 개발에 접목
직관적으로 이해하기 쉽다.
유지 보수를 용이하게 만든다.
객체는 현실의 무언가에 대응하는 개념이다.
class는 객체를 표현하는 하나의 수단이다 (클래스와 객체는 같다고 볼 수 없다.)
다른 객체와 협력(Collaboration)하는 역할(role)을 맡고있는 대상
역할을 맡으면 임무를 수행할 책임(responsbility)이 생긴다.
이책임을 다하기 위한 데이터와 프로세스를 가지고 있다.
즉 객체지향에선 객체가 자율적으로 능동적으로 행동할 수 있다고 의인화 하여야 한다.
자율적으로 메시지르 처리하기 위해서 자신의 책임을 수행하는 데 필요한 데이터와 프로세스를 가지고 있다.
다형성을 활용하는 목적은 서로 다른 유형의 객체가 동일한 메시지에 대해 다르게 반응하게 하기 위해서임
동일한 메시지를 처리한다 == 같은 역할을 수행한다.
다르게 반응한다 == 메시지 처리 방법은 자율적이다.