Prototype Pattern

원형이 되는 인스턴스를 사용하여 생성할 객체의 종류를 명시하고, 이렇게 만든 견본을 복사해 새로운 객체를 생성한다. Motivation 게임 개발 시 여러 종류의 유닛을 사용하고 있다고 하자. 각 유닛 객체는 다양한 특성을 가지고 있으며, 게임에서 동일한 유닛을 복제해 새로운 유닛을 생성하는 상황이 많다. 이때, 매번 새로운 유닛을 생성하려면 비용이 크고, 시간이 많이 소요될 수 있다. 프로토타입 패턴을 사용하면 객체를 복제하는 방식으로 새로운 유닛을 생성할 수 있다. 이 패턴을 사용하면 객체의 복제가 간단해지고, 성능이 향상된다....

January 28, 2025 · 4 min · Beomsu Lee

Singleton Pattern

오직 한 개의 클래스 인스턴스만 갖도록 보장하고, 이에 대한 전역적인 액세스 포인트를 제공한다. Motivation 애플리케이션 설정을 관리하는 클래스가 있다고 하자. 설정 클래스는 애플리케이션에서 단 하나의 인스턴스만 있어야 하며, 이 설정은 애플리케이션 전반에서 공유되어야 한다. 만약 설정 객체가 여러 번 생성된다면 비효율적이고, 일관성이 없을 수 있다. 싱글톤 패턴을 사용하면 설정 객체 인스턴스가 오직 하나만 존재하도록 보장할 수 있다. Applicability 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 액세스 포인트로 모든 사용자가 접근할 수 있도록 해야 할 때 유일한 인스턴스가 서브클래싱으로 확장되어야 하며, 사용자는 코드 수정 없이 확장된 서브클래스의 인스턴스를 사용할 수 있어야 할 때 Structure Singleton: Instance() 연산을 정의하여 유일한 인스턴스로 접근할 수 있도록 함 Collaborations 사용자는 Singleton 클래스에 정의된 Instance() 연산을 통해 유일하게 생성되는 싱글톤 인스턴스에 접근할 수 있다....

January 28, 2025 · 4 min · Beomsu Lee

Abstract Factory Pattern

추상 팩토리 패턴은 연관성이 있는 객체 군을 생성하기 위한 인터페이스를 제공한다. Motivation 웹 애플리케이션을 개발할 때, 사용자의 웹 브라우저나 운영체제에 따라 다양한 UI 컴포넌트를 다르게 제공해야 할 수 있다. 이때, 운영체제에 따라 다른 UI 컴포넌트들을 하나의 일관된 인터페이스로 제공하는 것이 필요하다. 예를 들어, Button, TextField와 같은 UI 컴포넌트를 운영체제에 맞는 객체로 생성해야 하는데, 이를 각각 다르게 처리하려면 기존 코드에서 복잡한 조건문을 사용해야 한다. 추상 팩토리 패턴을 사용하면 각 운영체제에 맞는 객체를 생성하는 일관된 방법을 제공할 수 있다....

January 27, 2025 · 4 min · Beomsu Lee