
티켓 판매 어플리케이션 공연장의 공연을 보기 위해서 관람객은 티켓이 필요하다. 이벤트를 진행하는데 관람객이 초대권을 가지고 있을경우 무료로 관람 가능하다. 초대권이 있을경우 초대권을 교환하여 입장가능하며 없을경우 돈을 지불하고 입장 가능하다. 개선 전 소스 관람객의 경우 소유금액, 티켓, 초대권을 가지고있는 가방을 소유하고있다. /** * 관람객 도메인 클래스 * 소지품을 보호하기 위해 가방을 소지한다. */ @RequiredArgsConstructor @Getter public class Audience { private final Bag bag; } /** * 관람객의 가방을 나타내는 도메인 오브젝트 */ public class Bag { /** * 보유 금액 */ private Long amount..

객체지향의 대두 소프트웨어의 복잡성은 시간이 지날수록 증가해옴. 객체 및 엔티티와 현실 사이에 유사점을 통해 객체 관점에서 모델링 함. 각 객체는 조그마한 컴퓨터로 볼수 있으며 각 객체는 상태와 동작을 가진다. 객체지향적 추상화의 특징 특징 내용 단순성 (추상화) 여러 객체의 공통점을 묶어 단순화 시킨다. 객체는 현실을 모델링하므로 복잡성은 줄이고 구조는 단순화한다. 모듈성 각 객체의 내부 동작은 다른 부분과 분리되어있다. 가변성 올바른 설계를 하였다면 특정 객체 내부를 변경하더라고 다른부분에 영향을 주지 않는다. 확장성 새로운 객체를 추가하거나 존재하는 객체를 변경하므로써 요구사항에 빠르게 대처가함. 재활용성 객체는 다른 프로그램에서 다시 사용될수 있다. 출처 https://bit.ly/2MpUwA6