이 글은 자바스크립트 장식 디자인 패턴을 학습한 후 저자의 경험과 핵심 포인트를 공유할 것입니다. 관심 있는 친구들은 참고할 수 있습니다.
Decoration Design Pattern
각 기기마다 고유한 응용 시나리오와 문제 해결 방법이 있습니다. 장식 디자인 패턴은 객체에 새로운 기능을 동적으로 추가하는 방식으로 하위 클래스를 추가할 필요 없이 상속을 대체하는 데 사용되는 기술입니다. 상속은 객체의 새로운 기능을 확장할 수 있습니다. 상속 관계 대신 개체의 연관 관계를 사용하는 것이 더 유연하고 유형 시스템의 급격한 확장을 방지합니다. 이 모드는 새로 추가된 기능이 상속을 희생하여 문제를 해결하기에 충분하지 않을 때 사용하기에 적합합니다. 정육점 칼로 ^_^
장식 디자인 패턴: 객체에 몇 가지 추가 책임을 동적으로 추가합니다. 객체의 기능을 확장하기 위해 데코레이터는 상속보다 더 유연한 대안을 제공합니다.
구조 다이어그램:
Interface
var Bicycle = new Interface('Bicycle', ['assemble', 'wash', 'repair', 'getPrice']);
Object 클래스
var AcmeComfortCuiser = function(){ }; AcmeComfortCuiser.prototype = { assemble: function(){ }, wash: function(){ }, repair: function(){ }, getPrice: function(){ } }
Decoration 클래스
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(); } }
Extension 클래스
var HeadlightDecorator = function(bicycle){ BicycleDecorator.call(this, bicycle); }; extend(HeadlightDecorator, BicycleDecorator); HeadlightDecorator.prototype.getPrice = function(){ return this.bicycle.getPrice() + 15.00; }
위 내용은 제가 모두를 위해 정리한 것입니다. 앞으로는 꼭 활용하겠습니다. 모두 도움이 됩니다.
관련기사:
위 내용은 js 데코레이션 디자인 패턴 학습 경험(자세한 답변)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!