본문 바로가기

디자인 패턴10

9. Builder Pattern ▣ What is Builder Pattern? A builder is a generative design pattern that allows you to create complex objects step by step. 빌더는 복잡한 객체들을 단계별로 생성할 수 있도록 하는 생성 디자인 패턴입니다. 클래스가 여러 개의 생성자 인자를 사용할 때, 빌더 패턴의 사용을 고려할 수 있습니다. 제품의 영양 정보를 나타내는 클래스를 만들어본다고 생각해보겠습니다. 영양 정보에는 1회당 제공량, 제품의 용량, 1회 제공량당 칼로리, 지방, 나트륨(소듐), 탄수화물 등의 영양정보를 제공합니다. 이 클래스의 생성자를 만들기 위해서 아래와 같이 만들어보겠습니다. Java를 비롯한 대부분의 객체 지향성 언어들은 메소드 오버.. 2023. 12. 5.
8. Factory Method Pattern, Abstract Factory Patter 이번 포스팅에서는 팩토리 메서드 패턴과 추상 팩토리 패턴에 대해 함께 알아보겠습니다. ▣ What is Factory Method Pattern? Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses. 팩토리 메서드 패턴은 객체 생성용 인터페이스를 정의하지만, 서브클래스가 어떤 클래스를 인스턴스화 할 지 결정할 수 있도록 하는 패턴입니다. ▣ What is Abstract Factory Pattern? Provides an interface for creating famili.. 2023. 12. 2.
7. Decorator Pattern ▣ What is Decorator Pattern? Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. 데코레이터 패턴은 객체에 추가적인 책임을 동적으로 부여하여, 상속을 사용하지 않고도 유연하고 융통성있는 기능 확장을 가능하게 하는 패턴입니다. 즉, 우리가 클래스를 설계하다보면, 상속 관계를 정의하기가 어렵거나 너무 많은 상속 관계가 발생하는 경우가 있을 수 있는데, 데코레이터 패턴은 이런 문제를 해결하기 위해서 상속이 아닌 연관을 통해 Runtime에 필요한 기능을 추가할 수 있도록 하는 패턴.. 2023. 11. 28.
6. Iterator Pattern ▣ What is Iterator Pattern? Provides a way to access the elements of an aggregate object sequentially without exposing its underlying representation Iterator Pattern(반복자 패턴)은 '여러 요소를 담고 있는 객체(배열, 리스트, 맵 등)'의 내부 구조에 대한 이해 없이, 각 요소를 순서대로 접근하고 사용할 수 있는 방법을 제공하는 것입니다. 예를 들어 우리가 아래와 같은 코드를 작성했다고 해봅시다. import java.util.ArrayList; public class Main { public static void main(String[] args) { int[] arr =.. 2023. 11. 14.
5. Singleton Pattern ▣ What is Singleton Pattern? Ensure a class only has one instance, and provide a global point of access to it. 싱글턴 패턴은 특정 클래스에 대해서 한 개의 인스턴스만을 만들 수 있도록 하고, 어디서나 생성된 인스턴스에 접근할 수 있도록 하는 패턴입니다. 개인적으로는 디자인 패턴들 중에서 가장 단순하면서도 쉬운 패턴이라고 생각합니다. 이렇게 싱글턴 패턴으로 만드는 이유는, 여러 객체가 생성되면 상태 관리에 있어 어려움을 겪는 경우가 발생하기 때문입니다. 따라서 객체 생성자를 중앙에서 관리하여 하나의 클래스에 대해 하나의 객체만 생성될 수 있도록 하여 객체의 상태를 일관되게 유지할 수 있습니다. 고전적인 싱글턴 패턴 구현.. 2023. 11. 13.
4. Observer Pattern ▣ What is Observer Pattern? Define a one-to-many dependency between objects so that when one object changes state, all its dependent are notified and updated automatically. 옵저버 패턴은 객체간 1:多 의존 관계를 정의하여, 한 개의 객체 상태가 변경될 때, 그 객체와 의존 관계에 있는 모든 객체들이 자동으로 알림을 받고 상태를 갱신하는 패턴입니다. 옵저버 패턴은 일종의 push서비스와 비슷하다고 할 수 있습니다. 우리가 어떤 유튜브 채널을 구독했을 때, 그 유튜브에 새로운 영상이 업로드 되었는지 아닌지 계속 들어가서 확인하는 것은 번거롭겠죠? 그럴 때, 우리는 유튜브 .. 2023. 11. 7.