포도가게의 개발일지

Object[1] 본문

Tech

Object[1]

grape.store 2022. 3. 29. 23:37
반응형

chap 1.

1. 객체 설계

모듈이란?

- 크기와 상관없이 클래스 형태, 패키지 형태, 라이브러리 형태로 프로그램을 구성하는 임의의 요소

- 모듈은 세가지 목적이 있으며

  • 첫번째 : 정상 작동 되어야 한다.
  • 두번째 : 변경을 위해 존재 -> 쉽게 변하기 위해서는 객체가 자율적이어야 한다. -> 책임을 각자 가진다.
  • 세번째 : 의사소통이 가능하여야 한다. -> 코드가 직관적(? 상식적 or 일반적)이어야 한다.

객체지향의 목표는?

- 서로 의존하면서 협력하는 객체들의 공통체를 구축하는 것 -> 의존성을 없애는게 아니라 불필요한 의존성을 없애는것이다!

- 때문에 변경이 쉽기 위해서 최소한의 의존만 남기고 불필요한 의존성을 버려야 한다.

- 의사소통이 쉽다는거는 직관적(? 상식적)이어야 한다는 것이다. -> 셀러가 자기 업무만 하듯, 관객의 정보를 자기만 알고있듯 자율적인 존재여야 한다.

- 자기자신의 문제를 스스로 해결하게 하자

- 변경하기 쉬운설계는 한 번에 하나의 클래스만 변경할 수 있는 설계이다.(책임의 이동)

 

객체는 어떤 특정한 목적을 위해 기능과 속성의 집합이다.

훌륭한 객체지향 설계란 소프트웨어를 구성하는 모든 객체들이 자율적으로 행동하는 설계(무생물도 객체다)

 

-> 레스토랑에 손님이 들어오면 고용인이 주문을 받고 쉐프에게 주문을 전달 쉐프는 요리 후 고용인을 불러 음식을 전달. 손님은 음식을 먹고 계산을하고 나간다.

좋은 설계란 오늘 요구하는 기능을 온전히 수행하면서 내일의 변경을 매끄럽게 수용할 수 있는 설계이다.

 

'Tech' 카테고리의 다른 글

Object[3]  (0) 2022.04.09
Object[2]  (0) 2022.04.04
Jest  (0) 2022.02.20
Docker?  (0) 2022.02.16
Redis?  (0) 2022.02.07
Comments