Design patterns Flashcards
1
Q
Decorator
A
Decorators are used when it's necessary to delegate responsibilities to an object where it doesn't make sense to subclass it. A common reason for this is that the number of features required demand for a very large quantity of subclasses. Can you imagine having to define hundreds or thousands of subclasses for a project? It would likely become unmanagable fairly quickly. ```js //What we're going to decorate function MacBook() { this.cost = function () { return 997; }; this.screenSize = function () { return 13.3; }; } /*Decorator 1*/ function Memory(macbook) { var v = macbook.cost(); macbook.cost = function() { return v + 75; } } /*Decorator 2*/ function Engraving( macbook ){ var v = macbook.cost(); macbook.cost = function(){ return v + 200; }; }
/*Decorator 3*/ function Insurance( macbook ){ var v = macbook.cost(); macbook.cost = function(){ return v + 250; }; } var mb = new MacBook(); Memory(mb); Engraving(mb); Insurance(mb); console.log(mb.cost()); //1522 console.log(mb.screenSize()); //13.3
~~~
2
Q
Design Pattern - Definition
A
A general reusable solution to a commonly occurring problem within a given context in software design
3
Q
Module
A
A design pattern used to implement the concept of software modules, defined by modular programming, in a programming language with incomplete direct support for the concept