Objects 7장 객체 분해

카일·2020년 3월 1일
0

Objects 오브젝트

목록 보기
7/11
post-thumbnail

챕터 한줄 평

프로그래밍의 패러다임의 흐름속에서 지금까지 소개한 객체지향 개념들이 탄생하게 된 배경

프로그래밍의 진화

  • 메인함수에다가 전부 때려넣기
    • 데이터 문제
    • 비지니스로직과 사용자 인터페이스의 결합
    • 변경에서의 취약성
  • 함수형 프로그래밍
    • 여전히 데이터에 지나치게 의존하며
    • 수정에 용이하지 않다.
  • 데이터 추상화 계층
    • 다른 종류의 객체가 아닌
    • 데이터만을 포장하고 있는 계층
  • 객체지향
    • 타입을 기준으로 절차를 추상화한다.
    • 어떻게 알 수 있는가?
      • 인스턴스 변수를 통해서 타입을 판단하고 그에 맞게 다른 로직을 수행한다? 객체지향 위반
        • 각기 다른 클래스를 생성하고 다형성을 활용하여 절차를 추상화하여 제공하는 방식이 객체지향
        • 즉 조건문이 다형성으로 대체되는 것

협력의 관점에서 바라보자.

객체지향의 다양한 개념은 단순히 분리를 위해서 사용되는 것이 아니다. 객체들간의 협력이라는 관점에서 역할을 할당하고 역할을 할당하면서 무엇 을 할것인가에 집중하게 된다. 이 과정에서 같은 역할을 수행하는 객체를 묶음짓고 재사용성을 높이기 위한 방안이지, 단순히 절대적인 법칙이 아니다.

  • 단순히 타입을 분리하기 위해서 조건문을 쓰지 않기 위해서 다형성을 활용하는 것은 좋지 않다.
  • 협력이라는 관점에서 객체가 해야하는 역할을 정의하고
  • 이 역할을 적절히 수행할 수 있는 객체를 찾는 과정에서 다형성이 활용될 수 있는 것이지
  • 그자체로써 중요한 것이 아니다

0개의 댓글