디자인 패턴/생성 패턴

    [디자인 패턴] 싱글톤(Singleton) 패턴이란

    오늘 공부할 디자인 패턴은 싱글톤 패턴입니다. 1. 싱글톤 패턴이란 싱글톤 패턴을 적용한 클래스는 오직 하나의 객체만이 메모리 상에 존재한다는 것을 보장하고, 해당 클래스를 사용하는 어떠한 코드에서도 객체에 접근할 수 있도록 해주는 패턴입니다. 데이터베이스 연결 혹은 로컬 캐시 같은 기능을 구현할 때, 해당 기능을 담당하는 객체가 여러 개 생성된다면 예상치 못한 결과로 이어질 수 있습니다. 다른 생성 패턴들과 비교하면 보다 직관적인 이해가 가능한 것 같습니다. 바로 예시로 가시죠! 2. 예시 데이터를 저장하고 조회할 수 있는 간단한 LocalCache 객체를 예시로 들어보겠습니다. LocalCache 객체는 언제, 어디서 사용되더라도 동일한 데이터를 제공해줘야 한다는 요구사항이 있습니다. 이를 달성하기 ..

    [디자인 패턴] 프로토타입(Prototype) 패턴이란

    오늘 공부할 디자인 패턴은 프로토타입 패턴입니다. 1. 프로토타입 패턴이란 프로토타입 패턴은 기본적인 틀이 될 클래스를 이용해서 다양한 구현체 클래스를 생성하는 패턴입니다. "기본적인 틀이 될 클래스"라는 말이 이해하기 어려울 수 있는데 한번 예시를 들어보겠습니다. 추상 팩토리 패턴과 빌더 패턴을 공부할 때, 클래스가 너무 많아져서 관리하기 어렵다는 느낌을 받지는 않으셨나요? 실제로 추상 팩토리 패턴의 예시를 보시면 K3, K5, K8 객체들의 차이는 break, accelerate 메소드 호출에 따른 speed 변경값이 전부인데 각각의 팩토리 클래스도 따로 존재하고 있습니다. 이렇게 구현체 클래스들이 단순히 다른 상태의 조합으로 표현될 수 있다면 프로토 타입 패턴을 이용하는 것은 좋은 방법이 될 수 있..

    [디자인 패턴] 빌더(Builder) 패턴이란?

    오늘 공부할 디자인 패턴은 빌더 패턴입니다. 1. 빌더 패턴이란 빌더 패턴은 개발자에게 1)객체의 복잡한 생성 과정을 은닉하고, 2)세부적인 요소에 상관없이 동일한 생성 과정을 제공할 수 있습니다. 1번만 보면 추상 팩토리 패턴과 어떻게 다른 것인지 많이 헷갈리실수도 있지만 2번을 보면 둘 사이의 차이점을 볼 수 있습니다. 추상 팩토리 패턴은 객체의 생성에만 집중한다면 빌더 패턴은 객체의 단계별 생성에 중점을 둡니다. 그래서 추상 팩토리 패턴은 객체가 생성되는 즉시 반환되고 빌더 패턴은 마지막 단계에서 반환합니다. P.S. 이렇게 유사한 패턴들이 나올 때마다 두 패턴 사이의 차이점을 하나하나 비교해가며 정확히 구분하는 것은 사실 중요하지 않습니다! 패턴을 통해 해결하려고 하는 문제가 무엇이었는지 정확히 ..

    [디자인 패턴] 추상 팩토리(Abstract Factory) 패턴이란?

    오늘 공부할 디자인 패턴은 추상 팩토리 패턴입니다. 1. 추상 팩토리 패턴이란 추상 팩토리 패턴이라고 하니 어려워보이지만 팩토리 패턴과 다형성의 조합일뿐입니다. 조금 더 구체적인 용어를 사용해볼까요? 추상 클래스(인터페이스)와 클래스 생성 함수의 조합니다. 2. 활용하기 좋은 순간 소프트웨어의 메인 로직을 구현체의 생성과 분리하고 싶을 때 소프트웨어의 메인 로직과 세부사항을 분리하고 싶을 때 소프트웨어의 중심적인 틀을 세부사항이 준수하도록 강제하고 싶을 때 1번 부분의 '메인 로직을 구현체의 생성과 분리'에서 팩토리 혹은 빌더 패턴이 보이셨을 겁니다. 사용하는 3rd파티 앱과 프레임워크에서 필요로 하는 여러가지 설정값들로 인해 메인 코드가 복잡해지는 것을 막기 위해서 팩토리 패턴을 사용하곤 합니다. 2,..