객체 생성 관련 패턴이란?
- 이름처럼 객체의 생성에 관여하는 패턴이다.
- 객체 생성 과정에서 일반적으로 생길 수 있는 문제를 해결하기 위해 등장했다.
5가지 객체 생성 관련 패턴에 대한 간략한 설명
- 싱글톤 패턴 (Singleton Pattern): 하나의 객체를 생성하여, 애플리케이션 전역에서 이용할 수 있도록 만들어준다. 생성 비용이 비싸거나 생성이 까다로운 혹은 보안상의 문제로 단 하나만 존재해야 하는 객체를 생성할 때의 문제를 해결한다.
- 팩터리 메서드 패턴 (Factory Method Pattern): 연관된 여러 오브젝트를 손쉽게 생성할 수 있도록 만들어준다. 공통적인 필드를 여러개 가지고 있는 다양한 종류의 오브젝트를 만들어야 할 때 중복 코드를 줄이고, 확실하게 공통로직을 사용할 수 있게 해준다. 인터페이스를 구현하거나 인터페이스를 구현한 추상 메서드를 상속하여 만들기 때문에 단순 상속보다 확장이 용이하다. ex)
Vehicle
이라는 인터페이스가 있고,Car
,MotorCycle
,Plane
,Bicycle
는 바퀴 수, 연료 사용 여부 등의 공통 필드와 움직임, 멈춤 등의 공통 메서드를 가질 것이다. - 추상 팩터리 패턴 (Abstract Factory Pattern): 연관된 여러 오브젝트를 하나의 팩터리에서 생성하고 싶을 때 용이하다. ex)
MobileUI
라는 인터페이스가 있고,IOSMobileUI
팩터리에서는IosButton
,IosAlert
를 생성할 수 있고,AndroidMobileUI
팩터리에서는AndroidButton
,AndroidAlert
를 생성할 수 있을 것이다. - 빌더 패턴 (Builder Pattern): 옵셔널하게 값이 들어가는 필드를 많이 가진 복잡한 객체를 생성할 때 용이하다. 복잡한 객체를 생성할 때 작성하는 코드가 읽기 쉬워지고 유지보수하기 쉬워진다.
- 프로토타입 패턴 (Prototype Pattern): 기존에 존재하는 오브젝트와 비슷한 오브젝트를 새로 만들고 싶을 때 용이하다. 단순 복사로 이용하기 힘든 비공개 필드가 있거나, 인터페이스만 알거나, 많은 상속을 거친 객체에 대해 적용하면 좋다.
반응형
'Java > 자바 디자인 패턴' 카테고리의 다른 글
컴포지트 패턴 (Composite Pattern, 컴포짓 패턴) 이란? (0) | 2023.02.20 |
---|---|
브릿지 패턴 (Bridge Pattern) 이란? (0) | 2023.02.19 |
어댑터 패턴 (Adapter Pattern) 이란? (1) | 2023.01.29 |
프로토타입 패턴 (Prototype Pattern) 이란? (2) | 2023.01.28 |
빌더 패턴 (Builder Pattern) 이란? (0) | 2023.01.26 |