본문 바로가기

오브젝트

(5)
오브젝트 5장. 책임 할당하기 4장 요약 데이터 중심 설계는 고립된 객체 상태에 초점을 맞추어 협력 문맥을 무시하기 쉽다. 따라서 캡슐화 위반, 결합도 증가, 유연성 감소를 가져온다. 데이터가 아닌 책임에 초점을 맞춰야 한다. 책임 주도 설계를 향해 행동(메세지)을 먼저 결정하라. 클라이언트 관점에선 행동이 곧 책임이다. 협력이라는 문맥 안에서 책임을 결정하라 책임은 객체가 참여하는 협력에 적합해야 한다. 메시지를 결정한 후 객체를 선택해야 한다. 메세지가 존재하기 때문에 메세지를 처리할 객체가 필요한 것이다. 메시지가 객체를 선택하게 해야 한다. 메세지는 클라이언트의 의도를 표현한다. 메세지를 먼저 표현하면, 수신자에 대한 어떠한 가정에서도 자유로워진다. (깔끔한 캡슐화) 책임 주도 설계 시스템이 사용자에게 제공해야 하는 기능인 시..
오브젝트 4장 설계 품질과 트레이드오프 정리 오브젝트 - YES24 오브젝트 - YES24 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 가장 중요한 것은 책임이다. 훌륭한 설계란 합리적인 비용 안에서 변경을 수용할 수 있는 구조를 만드는 것이다. 훌륭한 설계의 결과로 탄생하는 객체는 결합도가 낮고 응집도가 높다. 훌륭한 설계를 위해선 객체의 행동에 초점을 맞춰야 한다. (내부 구현(필드 및 필드 수정 피함) 객체를 단순한 데이터 집합으로 바라보는 시각은 객체의 내부 구현을 퍼블릭 인터페이스에 노출시키는 결과를 낳는다. 즉 내부 변수를 다른 메서드의 인자로 노출시키거나, 다른 객체의 지역 변수..
오브젝트 3장 역할, 책임, 협력 정리 오브젝트 - YES24 오브젝트 - YES24 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라!객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두번째 걸음은 객체를 www.yes24.com 2장 요약 클래스, 추상 클래스, 인터페이스를 이용해 객체지향 프로그램을 구조화한다. 상속, 지연바인딩, 컴파일 시간 의존성(인터페이스, 추상클래스)과 실행 시간 의존성(클래스)를 이용한 다형성. 이는 "구현"에 대한 이야기. 핵심은 역할(role), 책임(responsibility), 협력(collaboration) 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것. 어떤 협력, 역할, 책임이 필요한지 고민 전에 구현하는 것은 변경하기 어렵고 유연하..
오브젝트 2장 객체지향 프로그래밍 정리 https://wikibook.co.kr/object/ 오브젝트: 코드로 이해하는 객체지향 설계 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라! 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두 번째 걸음은 객체를 wikibook.co.kr 2장에서는 객체지향 프로그래밍의 관점에서 설계를 개선해본다. 영화 예매 시스템 더보기 사용자는 영화 예매 시스템을 이용해 영화를 예매한다. 보통 App의 usecase는 화면을 기반으로 나오기에 화면을 와이어프레임 해놓고 기능을 설계하는 경우가 많다. 사람들은 실제로 영화(Movie)를 예매하는게 아니라 상영(Screening)을 예매한다. 예매자는 할인조건(discountCondition)과 할인 정책..
오브젝트 1장 객체, 설계 내용 정리 오브젝트: 코드로 이해하는 객체지향 설계 | 위키북스 (wikibook.co.kr) 오브젝트: 코드로 이해하는 객체지향 설계 역할, 책임, 협력을 향해 객체지향적으로 프로그래밍하라! 객체지향으로 향하는 첫걸음은 클래스가 아니라 객체를 바라보는 것에서부터 시작한다. 객체지향으로 향하는 두 번째 걸음은 객체를 wikibook.co.kr 객체 내부 데이터는 객체 스스로 처리한다. 캡슐화란 자신의 데이터 수정의 책임을 객체 스스로 갖는것 객체지향 세계의 객체는 의인화된 객체이다. 책임은 행동(협력 문맥 => 메세지에 응답할 책임)에 의해 정해진다. 앞으로 자주 나오는 그림 설명 프로그래밍 패러다임은 보완재다. 객체지향이 적합하지 않은 상황에서는 언제라도 다른 패러다임을 적용할 수 있는 시야를 갈고 닦아라. 절차..