https://www.youtube.com/watch?v=qhtL9EYtB3Q
⚙️ 팩토리 패턴의 개요

-
팩토리 패턴은 객체를 생성할 때 사용하는 디자인 패턴이다.
-
이 패턴은 다양한 객체를 생성할 수 있도록 하며, 그 예로 특정 공 객체를 생성할 때 사운드를 출력하거나 출력하지 않는 기능이 포함된다.
-
샘플 코드로 이 패턴의 적용을 확인할 수 있으며, 실행은 간단하다.
⚙️ Factory 패턴을 활용한 객체 생성

-
다양한 아이템이나 퍼즐 기믹을 생성하기 위해서는 직접 생성하는 것이 아니라 팩토리 패턴을 사용하는 것이 효율적이다.
-
아이템 매니저는 게임 개발에서 거의 필수적이며, FPS 게임에서 다양한 아이템(예: 헬스, 스피드 업 등)에 사용된다.
-
단순한 아이템 생성을 위해 스위치 케이스를 사용하는 접근 방식은 길어지고 복잡해질 수 있으며, 이는 유지보수에 어려움을 초래할 수 있다.
-
새로운 개념(예: 버프)을 추가할 때마다 기존 클래스 수정을 반복하게 되는 문제점이 있다.
🏭 팩토리 패턴을 통한 객체 생성

-
팩토리 패턴을 적용하면, 아이템 매니저는 구체적인 아이템 생성의 세부 사항을 팩토리에 위임할 수 있다.
-
아이템 매니저가 팩토리에 조건을 전달하면, 팩토리는 조건에 맞는 아이템을 생성하여 반환한다.
-
이 패턴은 유지보수를 쉽게 하고, 새로운 아이템 추가 시 아이템 매니저를 수정할 필요가 없다.
-
팩토리 패턴은 객체 생성을 위한 패턴으로, 인터페이스와 구현을 분리함으로써 추상화에 의존하여 확장성을 높인다.
-
구체적인 제품 클래스는 팩토리를 상속받아 인스턴스를 생성하며, 이는 코드의 캡슐화를 통해 더욱 유연한 구조로 발전할 수 있게 한다.
-
팩토리 패턴은 팀장님이 가슴 아파하는 상황을 개선하기 위해 적용될 수 있다.
-
아이템 매니저는 팩토리를 통해 구체적인 아이템의 생성 조건을 넘기고, 해당 조건에 맞는 아이템을 받아오는 구조이다.
-
이 방식으로 아이템 매니저는 유지보수를 하면서도 특정 아이템만 추가하는 것으로 확장이 가능하다.
-
팩토리 패턴은 오픈 클로즈드 원칙을 지키며, 여러 개발 원칙을 준수하면서 쉽게 확장할 수 있도록 돕는다.
-
팩토리는 인터페이스와 구현을 분리하여 사용되므로, 객체 생성 방식의 캡슐화와 확장의 용이함을 제공한다.
-
아이 프로덕트와 추상 클래스를 기반으로 한 추상 팩토리 디자인 패턴을 설명하고 있다.
-
추상 클래스 팩토리는 아이템을 생성하는 메소드만 추가하여 사용하며, 구체적인 프로덕트 A, B를 정의하는 방식이다.
-
프로덕트 A, B, C 또는 아이템 소드, 아이템 실드와 같은 다양한 구체적인 아이템을 생성할 수 있다.
-
이 팩토리를 상속받아 구체적인 팩토리 클래스를 제작하고, 인스턴스를 조건에 따라 초기화하여 반환하는 방식으로 구현된다.
-
팩토리 패턴은 추상화에 의존하여 설계된다.
-
이 접근법은 구체적인 클래스나 아이템에 의존하지 않으므로 쉽게 확장이 가능하다.
-
아이템 매니저는 팩토리라는 중간 개체를 사용하여 아이템을 생성하는 방식이다.
-
아이템 매니저는 구체적인 구현을 팩토리에 넘기며, 단순히 사용만 할 수 있다.
-
이 구조 덕분에 아이템 매니저는 아이템 추가 시 수정할 내용이 거의 없거나, 최소한으로 수정이 가능하다.
🔍 팩토리 패턴의 개념과 활용

-
팩토리 패턴은 객체 생성을 위한 디자인 패턴으로, 팩토리 메서드와 추상 팩토리로 나뉘지만 그 경계가 모호할 수 있다.
-
팩토리 메서드 패턴에 가까운 간단한 예시를 통해 설명되지만, 실제 게임에서는 더 복잡하게 활용된다.
-
예를 들어, 키-값 딕셔너리를 활용해 다양한 아이템을 생성할 수 있으며, 소더와 같은 아이템들을 다양하게 구현할 수 있다.
-
보통 이런 팩토리 패턴은 매니저 클래스에서 자주 사용되며, 아이템 매니저와 같은 곳에서 적용된다.
5. 🔍 객체 생성 방안에 대한 논의

-
매니저 역할을 하는 객체는 스태틱화하거나 싱글톤 패턴을 적용할 수 있다.
-
싱글톤 패턴에 대한 자세한 설명은 후에 있을 예정이다.
-
아이템 생성이 빈번하므로 오브젝트 풀 패턴과 함께 사용되는 경우가 많다.
-
일반적으로 이러한 패턴들은 자주 활용되는 방식이다.