반응형

개발/객체지향 2

VO, DTO, DAO, Entity의 차이

이 글은 자바/스프링 개발자를 위한 실용주의 프로그래밍 (김우근 저, 위키북스)를 읽고 개인적으로 정리한 내용입니다. 내용에 오류가 있을 수 있으니 정확한 내용은 위 책을 참고해주시기 바랍니다.VO (Value Object)클래스에 final만 붙인다고 불변 객체가 아니다.심지어 객체 내 필드가 모두 final이라고 반드시 불변 객체인 것은 아니다.final이 붙은 멤버 변수의 참조 객체가 불변성을 지키지 않는다면 무용지물이다.각 필드도 오브젝트라면 그 오브젝트도 불변이어야 함Lombok 라이브러리의 @Value 어노테이션을 사용하면 VO로 사용 가능해진다.VO가 되기 위한 3가지 조건불변성값은 변하지 않는다. 숫자 1은 영원히 숫자 1불변성을 유지하기 위한 예시(불변 객체, VO는 아님)값 변경 시에는..

개발/객체지향 2024.11.11

[OBJECTS 책 공부] 역할, 책임, 협력

[ALERT] 공부한 것을 정리한 글입니다. 부정확한 내용이 있을 수 있는 점 양해부탁드립니다! 피드백 주시면 감사히 받겠습니다 :) 1. 협력 객체지향 시스템은 자율적인 객체들의 공동체이다. 즉, 각자 능동적으로 역할을 수행한다. 이때 각 객체 사이의 협력을 위해 사용할 수 있는 유일한 통신 수단이 바로 메시지 전송이다. 협력이란 어떤 객체가 다른 객체에게 무엇인가를 요청하는 것이다. A객체가 B객체와 협력하기 위해 메시지를 전송하게되면 B 객체는 그 메시지를 수신하고 이에 맞는 메서드를 실행해 요청에 응답한다. 영화 예매 시스템에 방금 예를 대입해보자. Screening 객체가 Movie 객체에게 요금을 계산해달라는 calculateMovieFee라는 메시지를 전송한다. 그러면 Movie는 이에 응답..

개발/객체지향 2022.01.17
반응형