js 장식 디자인 모델 학습 소감

장식 디자인 모드
모든 설정 은 독특한 응용 장면 과 문 제 를 해결 하 는 방식 이 있다.장식 디자인 모델 은 동태 적 으로 대상 에 게 새로운 기능 을 추가 하고 계승 을 대체 하 는 기술 로 계승 을 통 해 서브 클래스 를 추가 하지 않 아 도 대상 을 확장 할 수 있 는 새로운 기능 이다.대상 의 관련 관 계 를 사용 하여 계승 관 계 를 대체 하고 더욱 유연 하 며 유형 체계의 빠 른 팽창 을 피 할 수 있 습 니 다.이런 모델 은 새로 추 가 된 기능 이 계승 을 대가 로 문 제 를 해결 할 수 없 을 때 사용-닭 을 잡 을 때 소 잡 는 칼 을 사용 합 니까^ ^
장식 디자인 모델:동태 적 으로 한 대상 에 게 추가 적 인 직책 을 추가 하고 한 대상 의 기능 을 확장 하려 면 장식 자 는 계승 보다 더욱 탄력 적 인 대체 방안 을 제공 합 니 다.
구성 도:

인터페이스

var Bicycle = new Interface('Bicycle', ['assemble', 'wash', 'repair', 'getPrice']);
대상 클래스

var AcmeComfortCuiser = function(){
  
};
AcmeComfortCuiser.prototype = {
  assemble: function(){
    
  },
  wash: function(){
    
  },
  repair: function(){
    
  },
  getPrice: function(){
    
  }
}
장식 류

var BicycleDecorator = function(bicycle){
  Interface.ensureImplements(bicycle, Bicycle);
  this.bicycle = bicycle;
};
BicycleDecorator.prototype = {
  assemble: function(){
    return this.bicycle.assemble();
  },
  wash: function(){
    return this.bicycle.wash();
  },
  repair: function(){
    return this.bicycle.repair();
  },
  getPrice: function(){
    return this.bicycle.getPrice();
  }
}
확장 류

  var HeadlightDecorator = function(bicycle){
    BicycleDecorator.call(this, bicycle);
  };
  extend(HeadlightDecorator, BicycleDecorator);
  HeadlightDecorator.prototype.getPrice = function(){
    return this.bicycle.getPrice() + 15.00;
  }

좋은 웹페이지 즐겨찾기