,

2012-02-01から1ヶ月間の記事一覧

The Decorator Pattern

//The class we're going to decorate function Macbook(){ this.cost = function(){ return 1000; }; } function Memory(macbook){ this.cost = function(){ return macbook.cost() + 75; }; } function BlurayDrive(macbook){ this.cost = function(){ ret…

The Mixin Pattern

http://addyosmani.com/resources/essentialjsdesignpatterns/book/#mixinpatternjavascript /* Car Class */ var Car = function(settings){ this.model = settings.model || 'no model provided'; this.colour = settings.colour || 'no colour provided';…

The Factory Pattern

var Car = (function() { var Car = function (model, year, miles){ this.model = model; this.year = year; this.miles = miles; }; return function (model, year, miles) { return new Car(model, year, miles); }; })(); var civic = new Car("Honda Ci…

The Facade Pattern

var addMyEvent = function(el,ev,fn){ if(el.addEventListener){ el.addEventListener(ev,fn, false); }else if(el.attachEvent){ el.attachEvent('on'+ev, fn); } else{ el['on' + ev] = fn; } }; 似たような機能が違う名前である場合とかは便利かも

Don’t Repeat Yourself

Non-DRY /*Let's store some default values in an array*/ var defaultSettings = {}; defaultSettings['carModel'] = 'Mercedes'; defaultSettings['carYear'] = 2010; defaultSettings['carMiles'] = 5000; defaultSettings['carTint'] = 'Metallic Blue'…

javascript コマンドパターン

http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/#commandpatternjavascript $(function(){ var CarManager = { /* request information */ requestInfo: function(model, id){ return 'The information for ' + model + ' with ID ' +…