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

~~~

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Design Pattern - Definition

A

A general reusable solution to a commonly occurring problem within a given context in software design

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly