자율적인 책임 객체들은 애플리케이션의 기능 구현을 위해 협력하고 협력 과정에서 자율적으로 판단하고 행동함 자율적인 객체란 스스로의 의지와 판단에 따라 맡은 책임을 수행하는 객체를 의미 증언에서의 자율적 책임 자율적인 방식으로 증언할 책임을 지는 모자장수 모자장수의 경우 증언할 책임은 있지만 증언을 위한 구체적인 방법 및 절차는 자율적임 모자장수는 증언만 한다면 증언하는 방식에 대해서는 자율적으로 행동함 2. 상세한 수준의 책임을 요청받아 수행하는 모자 장수 왕이 모자장수에게 증언에대한 행동을 구체적으로 요구함 (자율성 침해) 왕에대한 의존도가 높아져 모자장주의 책임을 수정하기 어려워짐 ex) 시간 순서대로가 아닌 생각나는대로 말 할수가 없음 너무 추상적인 책임 협력의 의도를 명확하게 표현하지 못할 정도로..
객체지향 개념의 오해 객체 지향의 기존 의미와 오해 객체 지향이란 실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임 실세계 모방이라는 개념은 실용적인 관점에서 적합하지 않음. 객체에 직접 대응되는 실세계의 사물을 발견할 확률이 적으며 실제로 있더라도 유사성이 적음 ex) 방화벽 (실세 - 화재 막는 벽, 소프트웨어 - 네트워크 침입 방어) 객체지향 프로그래밍의 진정한 목적 단순히 실세계를 소프트웨어 안으로 옮기는것이 아닌 고객과 사용자를 만족시킬 수 있는 신세계를 창조하는 것 객체지향이 실세계 모방이라는 개념이 계속 사용되는 이유 객체 지향의 다양한 측면을 이해하고 학습하는데 효과적 생명체 스스로 생각하고 결정: 캡슐화, 자율성 사람들이 약속과 계약을 기반으로 협력: 메시지 공동의 목표를 달성하기..
객체지향 패러다임 관점에서의 핵심 역할: 객체들이 애플리케이션의 기능구현을 위해 수행하는 상호 작용. 책임: 객체가 협력에 참여하기 위해 수행하는 로직. 협력: 수행하는 책임들이 모여 객체가 수행하는 구성. 협력 객체 지향에서의 객체는 고립된 존재가 아닌 애플리케이션 기능을 수행하기 위해 다른 객체와 협력하는 사회적 존재. public class Screening { private final Movie movie; public Reservation reserve(Customer customer, int audienceCount) { return new Reservation(customer, this, calculateFee(audienceCount), audienceCount); } private Mon..