[오브젝트 스터디] Chapter 05 책임 할당하기
·
Java
4장에서는 데이터 중심 설계의 문제점에 대해 알아봤습니다.문제점을 요약하자면 데이터 중심 설계는 행동보다 데이터를 먼저 결정하고, 협력이라는 문맥을 벗어나 고립된 객체의 상태에 초점을 맞추기 때문에 캡슐화를 위반하기 쉽고, 요소들 사이의 결합도가 높아지며, 코드를 변경하기 어려운 문제점들이 있었습니다. 책임 주도 설계를 하는데  도움을 주는 GRASP(General Responsibility Assignment Software Pattern) = 일반적인 책임 할당을 위한 소프트웨어 패턴을 이번 챕터에서 배워 볼 것입니다. GRASP 패턴은 객체에게 책임을 할당할때 지침으로 삼을 수 있는 원칙들의 집합을 패턴형식으로 정리한 것입니다. 책임 주도 설계 과정 REMIND시스템이 사용자에게 제공해야하는 기능인..
[오브젝트 스터디] Chapter 04 설계 품질과 트레이드 오프
·
카테고리 없음
오브젝트 스터디 4번째 시간이 왔습니다. 결국 이 책을 관통하는 주제는 당연하게도 좋은 객체 지향적인 설계를하자!입니다. 근데 그 좋은 객체지향적인 설계가 뭔지 반복해서 설명하고 있습니다. 이번 주에도 계속 끌고가는 영화 예매 시스템을 통해 데이터 중심 설계를 보여주며 데이터 중심설계에 비해 책임중심 설계가 얼마나 좋은 것인지 알려주고 있습니다. 객체 지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다.로 이번 주차를 시작해봅시다.  01 데이터 중심의 영화 예매 시스템 데이터 중심의 설계란 무엇인가? 객체가 내부에 저장해야하는 데이터가 무엇인가를 묻는 것으로 시작한다. Movie에 저장되어야할 데이터는 무엇일까?public class Movi..
[오브젝트 스터디] Chapter 03 역할, 책임, 협력
·
Java
오브젝트 챕터3 역할, 책임, 협력를 시작하겠습니다.  지난 챕터에서는 어떻게 객체지향을 구현할까 하는 관점에서 얘기했지만 이번에는 객체지향의 핵심 개념인 역할, 책임, 협력에 대해 알아본다. 지난 챕터에서의 영화 예매 어플리케이션의 로직을 가져와 설명한다.  아래와 같다.  먼저,객체들이 어플리케이션을의 기능을 구현하기 위해 수행하는 상호작용을 협력이라고 한다.객체가 협력에 참여하기 위해 수행하는 로직을 책임이라고 부름.객체들이 협력안에서 수행하는 책임들이 모여 객체가 수행하는 역할을 구성한다. 협력객체지향의 세계에서 기능을 구현할 수 있는 유일한 방법이 협력이다.메세지 전송은 다른 객체에게 도움 요청을 통해 커뮤니케이션을 할수 있는 유일한 수단이다.캡슐화를 통해  객체는 다른 객체의 상세한 내부 구현..
[오브젝트 스터디] Chapter 02 객체지향 프로그래밍
·
Java
안녕하세요. 시험 기간이 끝나서 다시 오브젝트를 공부해보겠습니다. 이번에는 오브젝트 책의 챕터2 객체지향 프로그래밍에 대해서 알아봅시다. 자바의 기본적인 개념에 대해서는 알고 있다는 전제하에 시작하겠습니다.  글을 길게 써 이해력을 높일 수 있겠지만 그 만큼 읽는데 시간이 많이 들어 안좋습니다. 이 글 또한 적절한 트레이드오프의 산물이겠습니다. 이번 장에서는 영화 예매 시스템을 통해 객체지향 프로그래밍에 대해 배워보자. 먼저 우리는 기본적으로 영화를 예매한다고 한다. 그런데? 실제로는 영화를 예매하는 것이 아니다. 우리는 그 시간대에 상영하는 영화를 예매하는 것이다. 이러한 용어 구분의 필요성이 있다.  여기에 할인 정책과 할인 조건을 추가한다. 할인 정책과 할인 조건은 함께 적용 받을 수 있다. 협력,..
[오브젝트 스터디] Chapter 01 객체, 설계
·
Java
조영호님의 책 '오브젝트: 코드로 이해하는 객체지향 설계' 를 통해 객체지향 설계에 대한것을 익혀보고자 한다.처음에 이론보다 실무의 중요성을 강조하며 시작했고 나또한 동의한다.이번 챕터에서는 티켓 판매 애플리케이션을 구현하며 객체지향 설계에 대해 알아보자.   Theater 클래스 이외 다른 클래스들은 생략했고 필요하다면 아래 레포지토리를 통해 확인하면 좋겠다.https://github.com/ruudska6/Object/tree/master/src/chapter1/ticketsellapp Object/src/chapter1/ticketsellapp at master · ruudska6/ObjectContribute to ruudska6/Object development by creating an acc..
[SWEA/JAVA] 1206. 1일차 - View
·
코테대비
안녕하세요. 싸피 13기 모집이 시작 되었는데요. 다같이 코테 공부를 해보자 싸피 대비 시리즈를 작성하게 되었습니다! 싸피는 여러가지 알고리즘 기법들이 나오지 않고 구현이 대부분이라고 합니다. 대비로는 D2~D4까지라고 하네요. SWEA는 백준과 다른 면이 있어 여러가지를 풀어보며 SWEA IDE의 적응을 하는 것이 좋을 것 같습니다. https://swexpertacademy.com/main/code/problem/problemSubmitHistory.do?contestProbId=AV134DPqAA8CFAYh 먼저 View입니다. 뭔가 백준에서 비슷한 것을 본 것 같은 문제인데요.    왼쪽과 오른쪽을 비교해서 더 큰 것을 기준으로 비교하려는 아파트 세대와 빼주면 되는 문제입니다. 저도 처음에 헷갈렸..