Design Pattern 3

동작 파라미터화란?

동작 파라미터화 동작 파라미터화(Behavior Parameterization)란 메서드의 동작을 파라미터로 받음으로써 변화에 대응하기 좋은 디자인 패턴이다. 예시로, 서비스에 User가 두 부류(Member, Designer)가 있다고 할 때, 한 서비스 객체에서 userList 중 Member만을 / Designer만을 filtering하는 메서드가 있다고 하자. 동작 파라미터화 없이 이를 구현하는 방법으로는 가장 간단하게 구현해보겠다. public UserFilterService { public List filterMembers(List users) { return users.stream .filter(user -> user.getRole().equals("MEMBER")) .collect(Coll..

Design Pattern 2023.07.02

Controller, Service, Repository 계층 간의 DTO

Velog에서도 포스팅 중입니다:) Springboot) Controller, Service, Repository 계층 간의 DTO DTO란, Data Transfer Objet로 데이터 전송 객체이다. 보통 개발시에 계층간에 도메인 전부가 아닌, 필요한 데이터만 모아서 Transfer의 역할을 하는 객체이다.이유를 설명하기에 앞서, DTO를 사용하지 않 velog.io DTO DTO란, Data Transfer Objet로 데이터 전송 객체이다. 보통 개발시에 계층간에 도메인 전부가 아닌, 필요한 데이터만 모아서 Transfer의 역할을 하는 객체이다. DTO를 사용하는게 좋은 이유 이유를 설명하기에 앞서, DTO를 사용하지 않는 경우와 사용하는 경우를 비교해보자. DTO 사용 X Service 계층에..

Design Pattern/OOP 2023.04.02

객체가 일하게 만들자

Velog에서도 포스팅 중입니다:) 객체가 일하게 만들자 요즘 개발하며 중심으로 생각하는 것이, 객체가 직접 일하게 만들자이다. 그동안 개발을 하며 테이블 중심으로 개발을 했었다. 그에 앞서서 객치지향이란 무엇인가? 나의 정의는역할을 가진 객 velog.io 일하는 객체 요즘 개발하며 중심으로 생각하는 것이, 객체가 직접 일하게 만들자이다. 그동안 개발을 하며 테이블 중심으로 개발을 했었다. 그에 앞서서 객치지향이란 무엇인가? 나의 정의는 객체지향이란 역할을 가진 객체들끼리 메시지를 주고받으며 협력하는 공동체라고 생각한다. 여기서 역할이란, 자신의 관심사에 책임을 가진 채로 행하는 기능을 의미한다. (ex 바리스타는 커피를 만든다는 관심사에 책임을 갖고 커피를 만든다라는 역할을 가졌다.) 그리고 메시지란..

Design Pattern/OOP 2023.04.02