본문 바로가기

Study/Object6

object 메시지와 인터페이스 메시지와 인터페이스 훌륭한 객체 지향 코드를 얻기 위해선 협력안에서 객체가 수행하는 책임에 초점을 맞춰야합니다. 여기서 중요한 것은 책임이 객체가 수신할 수 있는 메시지 기반이 된다는 것입니다. 그리고 객체가 수신하는 메시지들이 객체의 퍼블릭 인터페이스를 구성합니다. 여기서 훌륭한 퍼블릭 인터페이스를 만들기 위해선 책임 주도 설계를 따르는 것 이외에도 유연하고 재사용 가능한 퍼블릭 인터페이스를 만드는데 도움이 되는 설계 원칙과 기법을 익히고 적용해야합니다. 다음으로 이러한 원칙과 기법들을 살펴보고자 합니다. 협력과 메시지 클라이언트-서버 모델 두 객체 사이의 협력관계를 설명하기 위해 사용하는 전통적인 메타포는 클라이언트-서버모델입니다. 협력안에서 메시지를 전송하는 객체를 클라이언트, 메시지를 전송하는 객.. 2023. 8. 13.
object 책임 할당하기 책임 할당하기 이전 장에서 데이터 중심의 설계는 데이터를 시작으로 설계를 진행하기에 객체간의 결합도가 높아져 객체지향적이지 못했습니다. 그리고 객체지향적이지 못한 시스템은 안전성과 유지보수의 악영향을 준다는 것을 알 수 있었습니다. 그렇기에 최대한 객체 지향적으로 개발을 하기위해 데이터 중심의 설계에서 책임 중심의 설계를 할 수 있도록 노력할 필요가 있습니다. 이번장에서는 객체지향적인 개발을 위한 패턴중 GRASP(General Responsibility Assignment Software Patterns)패턴을 배우며 어떻게 하면 좀 더 객체 지향적인 개발을 할 수 있을지 알아보고자 합니다. 책임 주도 설계를 향해 데이터 보다는 행동을 먼저 결정하라 앞서 설명했지만 데이터 중심의 설계는 낮은 응집도와 .. 2023. 8. 8.
object 협력, 책임, 역할 발표 요약정리 객체지향 패러다임의 관점에서의 핵심은 협력(collaboration), 책임(resposibility), 역할(role) 입니다. 협력 협력을 설명하기 앞서 2가지 개념을 먼저 설명하고자 합니다. 캡슐화 메시지를 수신 받은 객체는 메서드를 실행해 요청에 응답합니다. 이때 객체 스스로 메시지를 처리할 방법을 선택하게 되며, 메시지를 전송한 객체는 그 처리 방법을 몰라도 됩니다. 이렇게 객체를 자율적인 존재로 만드는 것을 캡슐화라고 하며 이를 통해 변경에 대한 파급 효과를 줄일 수 있고 변경하기 쉬운 객체를 만들 수 있게 됩니다. 문맥 문맥을 단순히 어학사전에서 해석하면 서로 이어져 있는 문장의 앞뒤 관계라는 의미를 가집니다. 이를 객체지향의 협력이라는 관점으로 설명하면 서로 이어져 있는 객체들간의.. 2023. 7. 25.
object 설계 품질과 트레이드오프 발표 객체 지향 설계 객체 지향 설계는 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 가진 구조를 창조하는 활동을 말합니다. 이 정의에는 객체 지향 설계의 2가지 관점이 섞여 있는데, 첫번째는 객체지향 설계의 핵심이 설계라는 것과 두번째는 책임을 할당하는 작업이 응집도와 결합도와 같은 설계 품질과 연관되어 있다는 것입니다. 설계는 변경을 위해 존재하고 훌륭한 설계란 합리적인 비용안에서 변경을 수용할 수 있는 구조를 만드는 것입니다. 그리고 훌륭한 설계를 만드는 것은 객체의 행동에 초점을 맞추어 설계를 하는 것이 좋은 설계 방법이 됩니다. 하지만 이 방법과는 다르게 데이터를 중심으로 설계를 했을 경우 변경에 유용하지않은 객체를 만들게 됩니다. 이러한 차이를 확인하기 위해 이번.. 2023. 7. 25.