실세계를 직접적이고 직관적으로 모델링할 수 있는 패러다임실세계에 존재하는 사물들을 최대한 유사하게 모방해 소프트웨어 내부러 옮겨오는 것을 지향실세계의 사물을 기반으로 소프트웨어 객체를 식별하고 구현까지 이어간다는 개념 : 연결완전성(seamlessness)객체 : 실세
✔️ 인간은 선천적으로 눈에 보이는 세상을 자율적이고 독립적인 객체들로 분해할 수 있는 능력이 있기 때문✔️ 또한 이를 넘어서 인간은 추상적인 사물들도 개념적으로 경계를 지을 수 있음✔️ 하나의 개별 상태로 인지되는 것은 모두 다 객체가 될 수 있다.✔️ 인간의 인지능
→ 본능적으로 이해하기 쉽고 예측 가능한 수준으로 현실을 분해하고 단순화해야한다.→ 불필요한 부분을 제거하기 때문에, 현실에 존재하는 복잡성을 극복할 수 있다.→ 필요한 부분, 현실에서 분석 혹은 파악하려는 것의 맹점을 더 두드러지게 할 수 있다.✔️ 첫번째 차원 :
→ 결국 객체들은 하나의 공통된 목표를 위해 협력하는 것들이기 때문에, 협력을 하는 과정에서 어떻게 요청을 보내고 어떻게 요청에 응답할지가 중요하다.→ 따라서, 객체가 어떤 협력에 참여하는지가 중요하고, 그 협력이 객체의 행동을 결정하고, 객체의 행동이 객체의 상태와
💡 자율성 : 자기 스스로의 원칙에 따라 어떤 일을 하거나 자신을 통제해서 절제하는 성질이나 특성💡 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문💡 책임 : 객체가 요청을 처리하기 위해 수행하는 행동책임-주도 설계에 따라 적절한 객체
클래스가 코드를 구현하기 위해 사용할 수 있는 중요한 추상화 도구이지만, 객체 지향의 강력함은 객체들이 주고받는 메시지로부터 나온다. 또한, 객체들을 협력 속의 존재들로 생각해야한다. 협력 관계 속에서 다른 객체에게 무엇을 제공하고, 무엇을 얻어야하는 관점에서 접근해
ex) 출발지에서 목적지까지 가는 길을 사람에게 물었을 때, 사람은 구두로 대답하기 때문에, 텍스트처럼 다시 볼 수 없고 현재의 요구만을 만족시킨다, 나중에 대답을 다시 생각하면서 찾아가야하고, 출발지-목적지에 대한 정보만 알 수있다.✔️ 해결 방법 지향적인 접근법ex
도메인 : 사람들이 관심을 가지고 있는 특정 분야나 주제→ 소프트웨어가 도메인 속 문제를 해결하기 위해 개발되기 때문에 이 관점은 사용자가 도메인을 바라보는 관점을 반영한다. 사용자의 영역인 도메인을 벗어나 개발자가 주목하는 객체들의 책임에 초점이 맞춰진다. 즉, 객체