객체 생성시 팩토리 패턴과 생성자 패턴의 방법 및 차이점은?

단순하게 객체를 생성하는 것을 묻는게아니라 이를 활용할 수 있는 인스턴스를 생성하기 위한 방법을 얘기하려합니다. 객체를 통해 인스턴스를 만드는 방법으로 크게 팩토리 패턴과 생성자 패턴으로 구분할 수 있습니다.


i. 팩토리 패턴을 사용하는 방법

팩토리 패턴은 아래와 같은 방법으로 만들어지게 됩니다.
 
function createSite(name, type) {
  obj = new Object();
  obj.name = name;
  obj.type = type;
obj.getName = function() {
return name;
};

​​​​​​​  return obj;
};
webisfree = createSite("웹이즈프리", "커뮤니티");

ii. 생성자 패턴을 사용하는 방법

생성자 방법은 많이 사용하는 new 키워드를 사용하여 새로운 이스턴스를 만들 수 있습니다.
 
function CreateSite(name, type) {
  this.name = name;
  this.type = type;
this.getName = function() {
return name;
};
};
webisfree = new CreateSite("웹이즈프리", "커뮤니티");


# 생성자 함수에 대한 네이밍

일반적으로 함수의 이름은 동사를 사용합니다. 예를들어 doSomething(), getName() 등등과 같습니다. 하지만 생성자의 경우 이와 달리 명사를 사용하고 앞에 대문자를 쓰는 것이 일반적입니다. 예를들면 아래와 같습니다.

function User() { }
function Person() {}

네이밍을 잘하는 것 역시 매우 중요하므로 참고하세요.