# GRASP

4개의 포스트

[TIL] 03.16

스위프트와 GRASP 원칙 참조 https://codesquad-yoda.medium.com/%EC%8A%A4%EC%9C%84%ED%94%84%ED%8A%B8%EC%99%80-grasp-%ED%8C%A8%ED%84%B4-d5e37a1bb5dc > JK님의 글을 보고 적으면서 공부한 글 내용은 거의 동일함니다. GRASP란, 9가지 General Responsibility Assignment Software Patterns 집합이다. 객체 책임을 할당하는 것은 OOD(객체 지향 설계)핵심 설계 방법 중에 하나이다. 정보 담당자 (Information Expert) 문제 정의: 객체에 책임을 할당하는 기본적인 원칙은 무엇인가 ? 해결 방안: 해당 객체에 필요한 정보를 채워넣는 것을 우선적으로 책임으로 할당한다. 코드를 보면 Customer 클래스는 모든 Orders를 참조하고, 주문에 대한 총합을 계산하기 위한 책임을 가짐 이

2023년 3월 16일
·
0개의 댓글
·

202212110640 5. 책임 할당하기

GRASP 패턴 응집도와 결합도, 캡슐화처럼 구체적인 기준에 따라 책임을 할당하고 트레이드오프할 수 있는 기준 지금까지 주요 과정 2장: 책임 중심 코드의 대략적인 모양 3장: 객체지향 프로그래밍에서 역할, 책임, 협력의 역할 4장: 역할, 책임,협력이 아닌 데이터(상태)에 초점을 맞출 때의 문제점 1. 책임 주도 설계를 향해 > - 데이터보다 행동을 먼저 결정하라 > - 협력이라는 문맥 안에서 책임을 결정하라 데이터보다 행동을 먼저 결정하라 객체에게 중요한 것은 외부에 제공하는 행동(책임)이다. 협력이라는 문맥 안에서 책임을 결정하라 객체에 할당된 책임은 협력에 적합해야한다. 책임이 조금 어색해보이더라도 협력에 적합하다면 괜찮다. 책임은 객체의 입장이 아니라 협력에 적합해야 한다. > Metz12 > 메세지를 전송해야 하는데 누구에게 해야하지? 라 질문하는 것이 메시지 기반(책임 주도) 설계로 향하는 첫걸음이다. 메세지를 먼저 결정하기 때문에

2022년 12월 27일
·
0개의 댓글
·

2021-12-27(월) 8주차 1일

오늘은 다시 자바~! 03.2 클래스 사용법 : 메서드를 분류하기 클래스 문법의 또 다른 용도는 유지보수하기 좋게 메서드를 분류하는 것이다. 클래스 문법 2가지 용도 ① 데이터 타입을 만드는 거 ② 메서드 분류 int 타입 : 4 byte 메모리 float 타입 : 4 byte 메모리 new int[] : 4 byte 메모리 여러 개. 같은 int 메모리를 여러 개. 우리가 원하는 건 복합 데이터 ‐ 연락처 : 이름, 이메일, 전화번호 ‐ 책 : 제목(String), 페이지수(int), 출판일(Date) 같은 타입의 데이터로만 표현 불가능 다양한 타입이 하나의 덩어리로 묶여서 다뤄져야 됨 자바에서 제공하는 타입이 아님 똑같은 책이어도 도서관에서 책을 다룰 때랑 서점에서 책을 다룰 때는 다름 서점은 판매가격이 있어야 됨 만드는 프로그램이 무엇이냐에 따라서 책에 대한 정보가 다름 이걸 자바에서 다 만들어 놓을 수 없음 메모리

2021년 12월 27일
·
0개의 댓글
·

[Software Design] SRP (Single Responsibility Principle)

책임 로버트 C. 마틴은 책임을 변경하려는 이유라고 정의했다. 변화의 시기와 이유가 같다면 같은 책임 아래 있다고 보는 것이다. 반대로, 한 객체 내에서 변화의 시기, 이유가 다른 부분이 존재한다면 그 객체는 여러 책임을 가지고 있는 것이다. 그에 따라 이렇게 좀 더 알아보기 쉽게 정의할 수 있을 것 같다. > 책임은 객체에 의해 정의되는 응집도있는 행위와 상태의 집합이다. 생성 책임 객체의 생성은 매우 중요한 작업 중의 하나이다. 객체를 생성하는 과정의 중요성 때문에 GoF의 디자인 패턴에도 5가지 종류의 생성 패턴이 존재한다. 또한 생성 과정에서 만나는 다양한 문제점들을 해결하기 위해서 많은 소프트웨어들에서 Factory Method를 이용한다. 이 생성 책임은 세부적으로 다음과 같은 작업들이 정상적으로 이루어지도록 만든다. 첫번째는 적절한 구체 객체를 생성하는 것이다. 생성 패턴이나 Factory Method에서는 사용자가 사용하는 생성자 객체

2019년 10월 28일
·
0개의 댓글
·