'객체지향 프로그램' 이란 무엇일까?
실세계를 모방하여 추상화와 은유 기반으로 새로운 세계를 창조한 프로그램이다.
공동의 목표 즉, 서비스를 달성하기 위해 책임과 역할 협력을 적절히 사용한 프로그램이다.
'자율성' 을 가진 객체는 우수 객체가 된다.
다른 객체가 직접적으로 접근하여 컨트롤 하는 것 보다 책임을 부여하고 자신이 처리하는 것이 바람직한 프로그램이다.
어떻게 수행하는지는 알 필요가 없다. 단지 무엇을 수행하는지만 아는것이 중요하다.
과정보다 결과를 중요시하는 것처럼..
'책임 주도 설계' 중요하다!
행동을 먼저 고민하고 상태를 고민하라!.
회원 정보를 '저장하는 행동' 을 고려해본 다음 정보를 저장하는데 '무엇' 을 저장해야하는가? 를 고민하게 된다.
행동을 결정하게 하는 것은 협력이다!
협력이란 요청과 응답 즉, '메시지' 를 보내면 잘 대응해주는 것이다. 이것이 잘 수행 되면 책임과 역할도 같이 잘 수행 된다.
'표현적 차이' 를 줄이자!
실제 사물이나 개념을 추상화하여 객체를 생성하면 표현적 차이가 있을 것이다.
예를 들어 음료라는 객체는 자신의 용량을 자기가 계산을 해야하는 행동이 있을 것이다. 이 행동은 실세계에서 표현하지 않는 것이다.
하지만 은유와 의인화를 통해서 이 표현적 차이를 줄여보자.
'추상화' 란 무엇일까?
특정 부분을 생략하여 감춤으로써 복잡도를 극복하고 단순화를 시킨 것이다.
'타입 & 개념' 이란 무엇일까?
일반화한 것이라고 말할 수 있다.
예를 들어 의자는 가구이다. 치킨은 튀김이다.
'분류' 란 무엇일까?
개념을 적용하여 분리를 한 것이다.
분리수거를 생각해보면 플라스틱과 캔, 종이, 일반쓰레기를 분류해서 버린다.
'클래스' 는 타입이 아니다!
클래스는 타입이 아니다. 타입을 구현한 것이 클래스이다.
'튼튼한 기초가 계획이 변경 되어도 대응을 할 수가 있다!'
안정적인 구조로 설계한 도메인이 불안정한 기능을 담아도 유연하게 대응을 할 수 있다.
'설계 순서 개념, 명세, 구현'
개념 : 도메인의 규칙과 제약조건을 설계
명세 : 책임을 초점으로 설계
구현 : '어떻게' 수행하는지 설계
'Book > 객체지향의 사실과 오해' 카테고리의 다른 글
[Book] 3장) 타입과 추상화 (0) | 2022.02.16 |
---|---|
[Book] 1장) 협력하는 객체 (0) | 2022.02.16 |
[Book] 7장) 함께 모으기 (0) | 2022.02.15 |
[Book] 6장) 객체 지도 (0) | 2022.02.13 |
[Book] 5장) 책임과 메시지 (0) | 2022.02.12 |
[Book] 4장) 역할, 책임, 협력 (0) | 2022.02.09 |
[Book] 2장) 이상한 나라의 객체 (0) | 2022.02.07 |