객체지향의 사실과 오해 - 협력하는 객체들의 공동체

Groot·2022년 10월 26일
0

TIL

목록 보기
89/153
post-thumbnail
post-custom-banner

TIL

🌱 난 오늘 무엇을 공부했을까?

📌 객체지향의 사실과 오해 - 협력하는 객체들의 공동체

📍 협력

  • 요청과 응답으로 구성
  • 요청을 처리하는 방법이 메서드

📍 역할, 책임

  • 협력에 찹여하는 특정한 객체가 차지하는 책임이나 임무.
  • 의미적으로 책임이라는 개념을 내포.
  • 특정한 역할은 특정한 책임을 암시.
  • 여러 객체가 동일한 역할을 수행할 수 있다.
  • 역할은 대체 가능성을 의미한다.
  • 각 객체는 책임을 수행하는 방법을 자율적으로 선택할 수 있다.
  • 하나의 객체가 동시에 여러 역할을 수행할 수 있다.

📍 상태와 행동

  • 협력을 하기위한 어떤 행동
  • 그 행동을 하는데 필요한 상태
  • 객체는 다른 객체가 무엇(what)을 수행하는지는 알 수 있지만, 어떻게(how) 수행하는지에 대해 알 수 없다.

📍 객체지향의 본질

  • 시스템을 상호하는 자율적인 객체들의 공동체로 바라보고 객체를 이용해 시스템을 분할하는 방법.
  • 자율적인 객체는 상태와 행위를 함께 지니고 스스로 자기 자신을 책임지는 객체.
    • 자율적인 객체로 구성하면 유지보수가 쉽고 재사용이 용이한 시스템을 구축할 수 있는 가능성을 제시.
  • 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합
  • 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 선택한다.

📍 후기

  • 예전에 클린 아키텍처를 적용하면서 가장 중요했던 부분은 프로토콜로 각 객체의 다형성을 보장하는 방식이였다고 생각한다. 그렇게 했을때 사용해야 하는 메서드는 기본적으로 구현해줘야 때문에 객체를 자유롭게 바꿔가며 사용할 수 있는 이점이 있었기 때문이다.
  • 객체는 다른 객체가 무엇(what)을 수행하는지는 알 수 있지만, 어떻게(how) 수행하는지에 대해 알 수 없다. 라는 말을 보고 다시 상기하게 되었다.
  • 예전에 잠깐 배운 전략, 상태 디자인 패턴도 결국 무엇(what)에 중점을 맞춰서, 객체가 원하는 일만 수행할 수 있다면 자유롭게 변경하면서 마음대로 사용하려고 만들어지지 않았을까..?
profile
I Am Groot
post-custom-banner

0개의 댓글