오브젝트 01_객체와 설계

ggyu_55·2023년 9월 16일
0

메모

목록 보기
33/46
post-thumbnail

다시 정리해야 함!!


티켓 판매 애플리케이션 :: 절차 지향 스타일


티켓 판매 애플리케이션 :: 객체 지향 스타일


트레이드 오프...!!

  • 모든 요구를 완벽히 만족시키는 구현은 없다. 타협하여야 함.

소프트웨어 모듈의 세 가지 목적

  1. 제대로 동작하여야 한다.
  2. 변경이 용이하여야 한다.
  3. 쉽게 이해가 가능하여야 한다.

객체의 의존성이 과하다?? --> 결합도가 높다

  • 의존성을 낮추기 위해 각 객체의 자율성을 높히자 --> 의인화

캡슐화 --> 변경하기 쉬운 객체를 만드는 것.

  • 접근을 제한하면 객체와 객체사이의 결합도를 낮출 수 있기 때문에 부담없이 변경할 수 있다.

객체를 인터페이스와 구현으로 나누고 인터페이스 만을 공개하기

절차적 프로그래밍 --> 프로세스와 데이터를 별도의 모듈에 위치시키는 방식

  • 데이터의 변경이 특정 지역에만 국한되기가 매우 어렵다!! 의존하는 객체가 너무 많기 때문.

객체지향 프로그래밍 --> 프로세스와 데이터를 동일한 모듈에 위치시키는 방식 ( 정확한 표현은 아니지만 대체로 잘 설명해주는 설명이다)

  • 데이터와 그 데이터를 사용하는 프로세스가 동일한 객체 안에 위치

절차 vs 객체 ?? --> "책임의 이동"

  • 객체 지향 설계는 각 객체가 자기 자신을 스스로 책임진다(일반적으로)
  • 절차 지향은 책임을 지는 놈이 따로 있다.

객체지향은 결국 적절한 객체에 적절한 책임을 할당하는 과정

불필요한 의존성을 제거하여 결합도를 낮춘다.

결합도를 낮추기 위한 방법으로 캡슐화를 사용한다.

  • 각 객체의 자율성이 올라가고 따라서 응집도가 상승하다. 이런 응집도가 높은 객체들의 공동체를 구성하는 것이 객체 지향의 목표!!!

참고 :: 오브젝트 :: 코드로 이해하는 객체지향 설계

0개의 댓글