본문 바로가기

팩토리3

DDD - Factory - 출처: 도메인 주도 설계 - 에릭 에반스 - Factory 어떤 객체나 Aggregate를 생성하는 일이 복잡해지거나 혹은 내부 구조가 너무 많이 드러나는 경우 Factory를 통해 캡슐화를 제공할 수 있다. 우리는 자동차를 운전할 때 어떻게 조립 되었느냐는 신경쓰지 않는다. 두 가지 행위는 같은 시간에 일어나지 않으며, 이런 기능이 동일한 매커니즘에 결합되어 있는것은 의미가 없기 때문이다. 이를 객체 생성관점에 빗대어 생각해보면 복잡한 객체를 생성하는 일과 생성된 객체가 하는 일은 관련성이 적다고 생각할 수 있다. 프로그래밍 언어의 기본적인 내용을 학습할 때 main과 같은 함수에서 곧바로 객체를 생성한다. 이런식으로 client가 객체를 생성해서 사용하면 되는데 왜 굳이 Factory를 통해 캡슐.. 2022. 9. 12.
이펙티브 자바 - 정적 팩토리 메소드 - 이 글은 Effective Java 를 기반으로 작성되었습니다. - 정적 팩토리 메소드 객체를 생성하는 일반적인 방법은 public 생성자를 이용하는것이다. 하지만 정적 팩토리 메소드를 이용할 수도 있다. Boolean 의 valueOf 메소드는 기본 타입의 boolean 을 Boolean 객체 참조로 변환한다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 흔히 정적 팩토리 메소드를 디자인 패턴의 팩토리 메소드와 혼동한다. 디자인 패턴의 팩토리 메소드는 하나의 환경변수나 다른 변수를 (팩토리)만 변경하면 제품군들도 일괄적으로 변경되어 생성되도록 하는 패턴이다. 예를 들어 객체 RadioA1과 .. 2021. 9. 5.
UML - 클래스 다이어그램과 오퍼레이션 - 이 글은 UML Distilled (마틴 파울러)책을 기반으로 작성하였습니다. - 오퍼레이션 오퍼레이션은 클래스가 수행하는 액션이며, 클래스에서 메소드에 대응된다. 오퍼레이션에 대한 UML 문법은 아래와 같다. [가시성] [이름] ([매개변수 리스트]) : [리턴 값 타입] {[프로퍼티 문장]} ex) + balanceOn (date: Date) : Money 가시성(visibility): public(+)와 private(-)가 있다. (다른 것은 추후에 다룬다.) 이름: 이름을 나타내는 스트링 매개변수 리스트: 매개변수의 목록 리턴 값 타입: 리턴값이 있는 경우 해당 타입 프로퍼티 문자열: 오퍼레이션에 적용되는 프로퍼티 값 매개변수 리스트에 매개변수들의 문법은 아래와 같다. 방향은 매개변수의 입력.. 2021. 2. 10.