팩토리 메서드란... 생성부분을 따로 빼놓는 거다.
추상클래스에 createGameObject() 라는 함수를 정의 하고, 이걸 다른 것들이 상속 받으면..
장점은 객체 생성 후에 해야 할 공통적인 수행을 정의할 수 있고
GameObject를 인자로 받아 다형성이 가능해진다. (이건 그냥 추상 패턴의 장점)
그리고, 생성자는 private GameObject(){} 이런 식으로 해서 오직 create함수만 생성에 담당하게 하면 좋다.
템플릿을 사용한 서브클래싱은 피해야 한다.