포도가게의 개발일지
Object[1] 본문
반응형
chap 1.
1. 객체 설계
모듈이란?
- 크기와 상관없이 클래스 형태, 패키지 형태, 라이브러리 형태로 프로그램을 구성하는 임의의 요소
- 모듈은 세가지 목적이 있으며
- 첫번째 : 정상 작동 되어야 한다.
- 두번째 : 변경을 위해 존재 -> 쉽게 변하기 위해서는 객체가 자율적이어야 한다. -> 책임을 각자 가진다.
- 세번째 : 의사소통이 가능하여야 한다. -> 코드가 직관적(? 상식적 or 일반적)이어야 한다.
객체지향의 목표는?
- 서로 의존하면서 협력하는 객체들의 공통체를 구축하는 것 -> 의존성을 없애는게 아니라 불필요한 의존성을 없애는것이다!
- 때문에 변경이 쉽기 위해서 최소한의 의존만 남기고 불필요한 의존성을 버려야 한다.
- 의사소통이 쉽다는거는 직관적(? 상식적)이어야 한다는 것이다. -> 셀러가 자기 업무만 하듯, 관객의 정보를 자기만 알고있듯 자율적인 존재여야 한다.
- 자기자신의 문제를 스스로 해결하게 하자
- 변경하기 쉬운설계는 한 번에 하나의 클래스만 변경할 수 있는 설계이다.(책임의 이동)
객체는 어떤 특정한 목적을 위해 기능과 속성의 집합이다.
훌륭한 객체지향 설계란 소프트웨어를 구성하는 모든 객체들이 자율적으로 행동하는 설계(무생물도 객체다)
-> 레스토랑에 손님이 들어오면 고용인이 주문을 받고 쉐프에게 주문을 전달 쉐프는 요리 후 고용인을 불러 음식을 전달. 손님은 음식을 먹고 계산을하고 나간다.
좋은 설계란 오늘 요구하는 기능을 온전히 수행하면서 내일의 변경을 매끄럽게 수용할 수 있는 설계이다.
Comments