본문 바로가기

책을 읽어보자/객체지향의 사실과 오해

[우테코 권장도서] 객체지향 사실과 오해 1장

1장 걍 카페나 창업할까?

객체지향은 클래스가 본질이 아니다!! -> 프로토 타입언어를 보면 바로 알수있다.

객체지향의 본질은 객체의 역할 책임 협력이다. + 캡슐화 -> 캡슐화가 객체의 자율성을 보장한다(다른 객체에게 휘둘리지 않도록)

캡슐화: 책임(메서드)가 움직이는 대상은 캡슐화된 상태가 주이다.

협력

협력은 대부분 연쇄적이다.

요청이 연쇄적일수있고 응답 또한 연쇄적이다.

역할

역할은 연관성이 짙은 책임의 집합이라고 할수있다.

개발에서 보면 인터페이스라고 대치할수 있다고 생각한다. 역할을 미리 정의해놓는 수단이 인터페이스 아닌가 싶다.

책임

사실상 하는일(메서드) 라고 생각하면 될 것 같다.

책임은 결국 메서드이다. 메서드에서 다른객체의 메서드를 호출할수있다 -> 다른 객체에 요청할수있다.

결국 객체지향은 한마디로

큰 프로그램을 역할단위(인터페이스)로 쪼개놓고 그 역할을 수행하는 각각의 방법(구현)을 책임이라 말하며 책임은 객체가 갖는다. 역할을 구현하는 객체는 여러개일 수 있으며 그 인터페이스를 구현하여 결과물만 맞게 갖는다면 어떤 행위를 해도 되는 자율성을 가진다.(ex.랜덤 숫자 뽑는 객체를 대체하여 테스트 객체 끼워넣을때 개발자가 넣은 리스트 pop해서 주는것)

의문점

->메서드를 런타임에 결정할수 있다고 써져있는데 무슨 소리인지 감이 안온다.