Prototype Design Pattern 방식은 보통 퍼포먼스가 중요한 상황에서 사용되는 방법이다. 

보통 기존 객체를 복사하여( 상속 느낌 ) 재사용 하는 방식인데 예를들어 방대한 데이터베이스를 통해 만들어진 객체를 프로젝트의 다른 부분에서 쓰여야 할 때 이 패턴이 쓰인다. 복잡한 DB작업을 중복하여 하지 않고 해당 객체를 복사하여(상속하여 ) 사용한다.

물론, 객체를 다른 곳에서 사용하기 위해 생성자가 존재 해야 한다. 

재사용 한 코드는 대충 이렇다.

var TeslaModelS = function() {
  this.numWheels    = 4;
  this.manufacturer = 'Tesla';
  this.make         = 'Model S';
}


////////////////////////////// 비동기적 프로토타입 선언

TeslaModelS.prototype.go = function() {
  // Rotate wheels
}

TeslaModelS.prototype.stop = function() {
  // Apply brake pads
}

////////////////////////////// 동기적 프로토타입 선언

TeslaModelS.prototype = {
  go: function() {
    // Rotate wheels
  },
  stop: function() {
    // Apply brake pads
  }
}

 

프로토타입 패턴 방식도 코드를 캡슐화 시켜 public과 private 부분을 분할 시킬 수 있다.

var TeslaModelS = function() {
  this.numWheels    = 4;
  this.manufacturer = 'Tesla';
  this.make         = 'Model S';
}

TeslaModelS.prototype = function() {

  var go = function() {
    // Rotate wheels
  };

  var stop = function() {
    // Apply brake pads
  };

  return {
    pressBrakePedal: stop,
    pressGasPedal: go
  }

}();

+ Recent posts