개발/디자인패턴 24

[Java][디자인 패턴] 4. 추상 팩토리 패턴 (Abstract Factory Pattern)

디자인패턴 [Java][디자인 패턴] 4. 추상 팩토리 패턴 (Abstract Factory Pattern) 추상 팩토리 패턴은 팩토리 메서드 패턴을 확장한 패턴이다. 추상 팩토리 패턴이란? 추상 팩토리 패턴은 팩토리 메서드 패턴을 확장한 패턴이다. 이 말은 즉슨, 팩토리 메서드를 여러 개를 만들고 그룹핑해서 하나로 관리할 수 있도록 만든 게 추상 팩토리 패턴이라고 볼 수 있다. 팩토리 패턴 vs 팩토리 메서드 패턴 vs 추상 팩토리 패턴 팩토리 패턴 vs 팩토리 메서드 패턴 추상화의 여부로 알 수 있다. 팩토리는 바로 클래스들의 생성을 한 곳에 모아서 new로 관리해주고, 팩토리 메서드는 추상화한 상위 클래스 아래에 하위 클래스를 두고, 실제 객체의 생성은 하위 클래스에게 위임한다. (선언과 구현을 분..

[Java][디자인 패턴] 3. 팩토리 메서드 패턴 (Factory Method Pattern)

디자인 패턴 [Java][디자인 패턴] 3. 팩토리 메서드 패턴 (Factory Method Pattern) 팩토리 메서드 패턴은 팩토리 패턴의 확장 패턴으로, 팩토리 패턴과 템플릿 메서드 패턴이 결합된 패턴이다. 팩토리 메서드 패턴이란? 팩토리 메서드는 추상화 기법을 사용하여 패턴을 확장한다. 추상화를 사용하면 아직 실제 내용이 구현되지 않은 상태에도 미리 메서드를 호출하여 사용할 수 있다. 팩토리 메서드 패턴은 객체를 생성하는 뼈대를 형성할 때 자주 응용한다. 팩토리 메서드는 추상화를 통해 하위 클래스에 다형성을 부여한다. 팩토리 메서드 패턴은 클래스 결합도가 낮고 유연성이 좋다. 또한 기능 개선 시 기능을 보완하기 위한 리팩터링 작업도 관리한다. 팩토리 메서드 패턴 vs 팩토리 패턴 팩토리 패턴 객..

[Java][디자인 패턴] 2. 싱글턴 패턴 (Singleton Pattern)

디자인 패턴 [Java][디자인 패턴] 2. 싱글턴 패턴 (Singleton Pattern) 싱글턴은 생성 패턴으로, 다른 생성 패턴과 달리 클래스에서 하나의 객체만 생성할 수 있도록 제한하는 패턴으로, 생성된 객체는 공유되어 어디서든 접근할 수 있다. 싱글턴 패턴은 언제 사용할까? 공유 자원 접근 복수의 시스템이 하나의 자원에 접근할 때 유일한 객체가 필요할 때 값의 캐시가 필요할 때 싱글턴 패턴에서는 어떻게 객체를 하나로 보증할까? 생성자의 접근 속성을 private으로 하여 외부에서 생성자에 접근할 수 없도록 한다. 내부 참조체를 통해 자신의 객체를 보관하고, new 키워드 대신 객체 생성 메서드를 호출하여 객체를 가져온다. 이때, getInstance 메서드는 정적 메서드로 만들고 객체가 없을 경..

[Java][디자인 패턴] 1. 팩토리 패턴 (Factory Pattern)

디자인패턴 [Java][디자인 패턴] 1. 팩토리 패턴 (Factory Pattern) 객체 생성 과정을 담당할 별도의 클래스를 선언하여 생성되는 객체의 구조를 느슨한 관계로 변경할 수 있다. 팩토리 패턴이란? 팩토리 패턴은 객체 생성 과정을 분리하여 처리한다. 객체 생성 과정에서 발생하는 new 키워드의 문제점을 해결하고 느슨한 객체 생성을 관리할 수 있다. 팩토리 패턴과 프록시 패턴을 결합하면 객체 생성을 위임받을 때 권한에 따라 접근하는 것을 제어할 수 있다. 단순 팩토리 패턴은 메서드를 통해 객체 생성을 관리할 수 있다. 팩토리 패턴 구조 예제 코드로 작성한 Coffee를 Americano, CafeLatte, VanillaLatte와 같은 종류별로 생성하는 CoffeeFactory라는 예제 코드..