전체 글
-
[객체지향의 사실과 오해] 객체지향 설계의 관점과 추상화 기법Book/객체지향의 사실과 오해 2023. 3. 14. 17:17
객체지향 설계 관점 개념 관점(Conceptual Perspective) 설계는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현 사용자가 도메인을 바라보는 관점을 반영 실제 도메인의 규칙과 제약을 최대한 유사하게 반영 명세 관점(Specification Perspective) 사용자의 영역인 도메인을 벗어나 개발자의 영역인 소프트웨어로 초점 이동 도메인이 아닌 객체들의 책임에 초점 객체가 협력을 위해 무엇을 할 수 있는가에 초점 구현 관점(Implementation Perspective) 객체들이 책임을 수행하는 데 필요한 동작하는 코드를 작성하는 것 객체의 책임을 어떻게 수행할 것인가에 초점 인터페이스를 구현하는데 필요한 속성과 메서드를 클래스에 추가 클래스의 공용 인터페이스는 명세 관점을 반영..
-
[객체지향의 사실과 오해] 기능과 구조의 통합Book/객체지향의 사실과 오해 2023. 3. 14. 16:11
기능설계 VS 구조설계 설도메인 모델계는 기능(function) 측면의 설계와 구조(structure) 측면의 설계로 구성 기능 측면의 설계는 제품이 사용자를 위해 무엇을 할 수 있는지 초점 구조 측면의 설계는 제품의 형태가 어떠해야 하는지에 초점 설계는 기능과 구조 두가지 측면을 녹여 조화를 이루도록 하는 것 변경되는 요구사항에 유연하게 대처할 수 있는 안정적인 구조를 갖춰야함 객체지향은 객체의 구조에 집중하고 기능이 객체의 구조를 따르게 함 기능과 구조 사용자에게 제공할 기능과 기능을 담을 안정적인 구조 기능은 사용자가 자신의 목표를 달성하기 위해 사용할 수 있는 시스템의 서비스 구조는 시스템의 기능을 구현하기 위한 기반으로, 기능 변경을 수용할 수 있도록 안정적 기법 구조는 사용자나 이해관계자들이 ..
-
[객체지향의 사실과 오해] 책임의 자율성을 통한 협력의 품질Book/객체지향의 사실과 오해 2023. 3. 14. 14:30
자율적인 책임 책임 객체지향 공동체는 자율적인 객체로 구성 자율적인 객체는 자신의 의지와 판단에 따라 맡은 책임을 수행하는 객체를 의미 객체가 자율적이기 위해선 객체에게 할당되는 책임의 수준 역시 자율적이어야 함 책임은 자율성을 보장할 정도로 포괄적이고 추상적이돼, 협력에 참여하는 의도를 명확하게 설명할 수 있는 수준안에서 추상적이어야 함 메시지와 메서드 메시지 객체는 메시지를 전송하여 다른 객체에 접근 메시지 이름(message name) : 객체가 요청하는 메시지 메시지 인자(argument) : 메시지에 포함되는 추가적인 정보 메시지 전송 수신자와 메시지(메시지 이름, 메시지 인자)의 조합 수신자.메시지 이름(메시지 인자) 어떻게가 아닌 무엇에 해당함 객체가 제공하는 메시지는 외부의 다른 객체가 볼..
-
[객체지향의 사실과 오해] 역할, 책임, 협력을 통한 객체지향 설계 이해Book/객체지향의 사실과 오해 2023. 3. 13. 16:20
역할, 책임, 협력 책임 객체가 요청에 대해 응답할 수 있거나, 적절한 행동을 할 의무가 있는 경우 객체의 책임은 '객체가 무엇을 알고있는가'와 '무엇을 할 수 있는가'로 구성 크레이그 라만 객체의 책임 분류 - '하는 것'과 '아는 것' 하는 것(doing) 객체를 생성하거나 계산을 하는 등의 스스로 하는 것 다른 객체의 행동을 시작시키는 것 다른 객체의 활동을 제어하고 조절하는 것 아는 것(knowing) 개인적인 정보에 관해 아는 것 관련된 객체에 관해 아는 것 자신이 유도하거나 계산할 수 있는 것에 관해 아는 것 책임은 객체의 외부에 제공해 줄 수 있는 정보(아는 것의 측면)와 외부에 제공해 줄 수 있는 서비스(하는 것의 측면)의 목록 책임은 객체의 공용 인터페이스(public interface)..
-
[객체지향의 사실과 오해] 추상화의 2가지 차원을 바탕으로 이해한 타입(type)Book/객체지향의 사실과 오해 2023. 3. 10. 17:21
추상화 추상화를 통한 복잡성 극복 현실세계에서 불필요한 정보를 무시하여, 목적에 부합하도록 단순하게 만들어야함 추상화 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 추상화의 2가지 차원 - 구체적인 사물들 간의 공통점을 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것 - 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것 -77P. 추상화 정의- 개념(concept) 공통점을 기반으로 객체들을 묶기 위한 그릇 일반적으로 다양한 사물이나 객체에 적용할 수 있는 아이디어나 관념 개념을 이용하면 객체를 여러..