클래스 및 상속과 같은 객체 지향 프로그램 기능이 없으므로 Go에서 고전적인 팩토리 메서드 패턴을 구현하는 것은 불가능하나 여전히 Go에서 패턴의 기본 버전인 단순 팩토리(Simple Factory)를 구현할 수 있습니다.
이 예시에서는 팩토리 구조체(struct)를 사용하여 다양한 유형의 무기를 만들 것입니다.
먼저 총에 있어야 하는 모든 메서드들을 정의하는 iGun 인터페이스를 만듭니다. iGun 인터페이스를 구현하는 gun 구조체(struct) 유형이 있습니다. 두 개의 구상 총들(ak47 및 musket)은 총 구조체(struct)를 포함하고 모든 iGun 메서드들을 간접적으로 구현합니다.
gunFactory 구조체(struct)는 팩토리의 역할을 하며, 수신된 인수를 기반으로 요청된 유형의 총들을 생성합니다. main.go는 클라이언트의 역할을 하며 ak47 또는 musket과 직접 상호작용하는 대신 gunFactory에 의존하여 다양한 총들의 인스턴스를 생성하고, 생성을 문자열 매개변수만 사용하여 제어합니다.