JAVA

JAVA 디자인패턴 - 멀티턴(Multiton) 패턴의 정의 장점 구현

TECH 톡마스터 2023. 7. 18.

[ 목차 ]

    JAVA 디자인패턴 - 멀티턴(Multiton) 패턴의 정의 장점 구현
    JAVA 디자인패턴 - 멀티턴(Multiton) 패턴의 정의 장점 구현

    안녕하세요, 여러분! 프로그래밍의 세계에서 굉장히 중요한 부분인 디자인 패턴에 중 멀티턴 패턴에 대해서 이야기해보려 합니다. 이번 글에서는 멀티턴 패턴의 개념, 사용 이유, 특징, 그리고 예제 코드를 통한 이해를 돕고자 합니다. 지금부터 함께 알아볼까요?

    멀티턴 패턴의 이해

    자, 그럼 본론으로 들어가서 멀티턴 패턴에 대해 더욱 자세히 알아보도록 하겠습니다.

    멀티턴 패턴의 개념

    멀티턴 패턴은 디자인 패턴 중에서 생성 패턴에 속합니다. 이름에서도 알 수 있듯이, 멀티턴(Multiton) 패턴은 싱글턴(Singleton) 패턴의 확장으로, 한 개가 아닌 여러 개의 인스턴스를 생성할 수 있도록 하는 패턴입니다. 멀티턴 패턴을 사용하면, 제한된 개수의 인스턴스를 생성하고 관리할 수 있게 됩니다.

    멀티턴 패턴의 사용 이유

    • 리소스 관리: 제한된 개수의 인스턴스를 사용하여, 자원 사용에 제한을 둠으로써 리소스 관리에 도움을 줍니다.
    • 코드 유지보수: 싱글턴과 비슷한 구조를 가지고 있어서, 싱글턴 패턴으로 이미 작성된 코드를 쉽게 확장할 수 있습니다.
    • 적절한 인스턴스 할당: 사용할 수 있는 인스턴스가 여러 개일 때, 요청에 따라 적절한 인스턴스를 선택하여 할당할 수 있습니다.

    멀티턴 패턴의 특징

    멀티턴 패턴의 특징은 다음과 같습니다.

    • 인스턴스를 제한된 개수만 생성할 수 있습니다.
    • 요청에 따라 적절한 인스턴스를 제공한다는 점입니다.
    • 만약 제한된 개수를 1로 설정하면, 멀티턴 패턴이 싱글턴 패턴이 됩니다.

    멀티턴 패턴 예제 코드

    import java.util.HashMap;
    
    public class Multiton {
    
        private static final HashMap<String, Multiton> instances = new HashMap<>();
    
        private Multiton() {
            // 생성자를 private로 선언하여 외부에서 인스턴스를 생성하지 못하도록 합니다.
        }
    
        public static synchronized Multiton getInstance(String key) {
            // 인스턴스를 요청하면 해당 키에 해당하는 인스턴스를 반환하고, 없으면 새 인스턴스를 만들어 반환합니다.
            if (!instances.containsKey(key)) {
                instances.put(key, new Multiton());
            }
    
            return instances.get(key);
        }
    }

    위의 예제 코드를 보면, Multiton 클래스는 생성자가 private이고, instances라는 HashMap을 가지고 있습니다. getInstance 메서드를 사용하여 키 값을 전달하면, 키 값에 해당하는 인스턴스를 반환하거나, 없을 경우 새로운 인스턴스를 생성하여 반환하게 됩니다.

     

    이 글을 통해 멀티턴 패턴의 개념과 사용 이유, 특징, 그리고 예제 코드에 대해 알아보았습니다. 멀티턴 패턴을 적절하게 활용하면, 제한된 개수의 인스턴스를 효율적으로 관리하여 개발자가 원하는 대로 코드를 작성하고 유지보수할 수 있습니다. 앞으로 다양한 상황에서 적절한 디자인 패턴을 선택하여 여러분들의 프로그래밍이 더욱 빠르고, 효율적으로 진행되기를 바랍니다. 그럼, 행복한 코딩 하세요!

     

    2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴

     

    디자인패턴 - 팩토리(Factory) 패턴

    2023.07.12 - [JAVA] - 디자인패턴 - 싱글톤(Singleton) 패턴 [ 목차 ] 안녕하세요. 이번에는 팩토리(Factory) 패턴에 대해서 알아보도록 하겠습니다. 1. 팩토리(Factory) 패턴 이란? 팩토리 패턴은 객체 생성을

    tech.dj-tiger.com

    2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴

     

    디자인패턴 - 팩토리(Factory) 패턴

    2023.07.12 - [JAVA] - 디자인패턴 - 싱글톤(Singleton) 패턴 [ 목차 ] 안녕하세요. 이번에는 팩토리(Factory) 패턴에 대해서 알아보도록 하겠습니다. 1. 팩토리(Factory) 패턴 이란? 팩토리 패턴은 객체 생성을

    tech.dj-tiger.com

    2023.07.12 - [JAVA] - 디자인패턴 - 어댑터(Adapter) 패턴

     

    디자인패턴 - 어댑터(Adapter) 패턴

    [ 목차 ] 안녕하세요. 오늘 알아볼 패턴은 어댑터(Adapter) 패턴입니다. 1. 어댑터(Adapter) 패턴 이란? 어댑터 패턴은 디자인 패턴 중 하나로, 서로 다른 인터페이스를 가진 클래스 또는 객체를 협력할

    tech.dj-tiger.com

    2023.07.12 - [JAVA] - JAVA 디자인패턴 - 싱글톤(Singleton) 패턴

     

    디자인패턴 - 싱글톤(Singleton) 패턴

    2023.07.12 - [JAVA] - 디자인패턴 - 팩토리(Factory) 패턴 [ 목차 ] 안녕하세요. 자바에는 다양한 디자인 패턴이 존재하고, 각 패턴은 특정한 문제를 해결하기 위해 설계되었습니다. 적절한 디자인 패턴

    tech.dj-tiger.com

    2023.07.13 - [JAVA] - JAVA 디자인패턴 - 옵저버(Observer) 패턴

     

    JAVA 디자인패턴 - 옵저버(Observer) 패턴

    [ 목차 ] 안녕하세요. 이번에는 Java 디자인패턴 중 옵저버(Observer) 패턴에 대해서 알아보겠습니다. 1. 옵저버(Observer) 패턴이란? 옵저버 패턴은 디자인 패턴 중 하나로, 한 객체의 상태가 변화하면

    tech.dj-tiger.com

    2023.07.13 - [JAVA] - JAVA 디자인패턴 - 데코레이터(Decorator) 패턴

     

    JAVA 디자인패턴 - 데코레이터(Decorator) 패턴

    [ 목차 ] 안녕하세요. 오늘은 JAVA 디자인패턴 중 데코레이터(Decorator) 패턴에 대해서 알아보겠습니다. 1. 데코레이터(Decorator) 패턴 이란? 데코레이터 패턴은 기존 객체에 동적으로 새로운 기능을

    tech.dj-tiger.com

    2023.07.14 - [JAVA] - JAVA 디자인패턴 - 프록시(Proxy) 패턴

     

    JAVA 디자인패턴 - 프록시(Proxy) 패턴

    [ 목차 ] 안녕하세요. 이번에 알아볼 JAVA 디자인패턴은 프록시(Proxy) 패턴입니다. 1. 프록시(Proxy) 패턴 이란? 프록시 패턴은 객체의 대리자 또는 객체에 대한 참조를 제공하여 실제 객체의 내부 로

    tech.dj-tiger.com

    2023.07.14 - [JAVA] - JAVA 디자인 패턴 - 커맨드(Command) 패턴

     

    JAVA 디자인 패턴 - 커맨드(Command) 패턴

    안녕하세요. 오늘 알아볼 JAVA 디자인 패턴은 커맨드(Command) 패턴입니다. 1. 커맨드(Command) 패턴 이란? 커맨드 패턴은 요청을 객체로 캡슐화하여 메서드 호출에 의한 연동을 개선하고, 호출 정보를

    tech.dj-tiger.com

    2023.07.15 - [JAVA] - JAVA 디자인패턴 - 스트래티지(Strategy) 패턴

     

    JAVA 디자인패턴 - 스트래티지(Strategy) 패턴

    [ 목차 ] 안녕하세요. 오늘은 JAVA 디자인패턴 중 스트래티지(Strategy) 패턴에 대해서 작성해 보겠습니다. 스트래티지(Strategy) 패턴 이란? 스트래티지 패턴은 알고리즘 군을 정의한 다음 각각을 캡슐

    tech.dj-tiger.com

    2023.07.16 - [JAVA] - JAVA 디자인패턴 - 템플릿 메서드(Template Method) 패턴

     

    JAVA 디자인패턴 - 템플릿 메서드(Template Method) 패턴

    [ 목차 ] 안녕하세요. JAVA 디자인패턴 중 템플릿 메서드(Template Method) 패턴에 대해서 알아볼까요? 템플릿 메서드(Template Method) 패턴 이란? 템플릿 메서드 패턴은 알고리즘의 골격을 제공하고, 일부

    tech.dj-tiger.com

    2023.07.17 - [JAVA] - JAVA 디자인패턴 - 컴포지트(Composite) 패턴

     

    JAVA 디자인패턴 - 컴포지트(Composite) 패턴

    [ 목차 ] 안녕하세요. 이번에 알아볼 JAVA 디자인패턴은 컴포지트(Composite) 패턴입니다. 컴포지트(Composite) 패턴 이란? 컴포지트 패턴은 객체들의 조직을 트리 구조로 구성하여 전체-부분 계층을 표

    tech.dj-tiger.com

    2023.07.12 - [JAVA] - JAVA 디자인패턴 - 이터레이터(Iterator) 패턴의 정의, 사용 이유, 구현방법

     

    JAVA 디자인패턴 - 이터레이터(Iterator) 패턴의 정의, 사용 이유, 구현방법

    [ 목차 ] 안녕하세요, 프로그래밍 세계의 친구분들! 오늘은 자주 사용되는 자바 디자인 패턴 중 하나인 이터레이터(Iterator) 패턴에 대해 알아볼까요? 디자인 패턴이란 소프트웨어를 설계할 때 반

    tech.dj-tiger.com

    2023.07.17 - [JAVA] - JAVA 디자인패턴 - 상태(State) 패턴의 정의, 구성요소, 구현, 장단점

    2023.07.12 - [JAVA] - JAVA 디자인패턴 - 비지터(Visitor) 패턴의 정의, 장점, 구현

     

    JAVA 디자인패턴 - 비지터(Visitor) 패턴의 정의, 장점, 구현

    [ 목차 ] 안녕하세요, 자바 프로그래밍을 사랑하는 여러분! 오늘은 디자인 패턴 중 하나인 비지터(Visitor) 패턴에 대해 자세히 알아볼까요? 디자인 패턴은 우리의 코드를 더 유연하고 효율적으로

    tech.dj-tiger.com

    2023.07.17 - [JAVA] - JAVA 디자인패턴 - 퍼사드(Facade) 패턴의 정의, 장점, 구현

    2023.07.17 - [JAVA] - JAVA 디자인패턴 - 체인 오브 리스폰시빌리티(Chain of Responsibility) 패턴의 정의, 장점, 구현

    2023.07.17 - [JAVA] - JAVA 디자인패턴 - 빌더(Builder) 패턴 정의, 장점, 구현

    댓글

    💲 추천 글