w11
This commit is contained in:
parent
f27ef79e3c
commit
2856dedb68
11
w11-patterns/w8_factory/index.html
Normal file
11
w11-patterns/w8_factory/index.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<script src="index.js"></script>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body></body>
|
||||||
|
|
||||||
|
</html>
|
26
w11-patterns/w8_factory/index.js
Normal file
26
w11-patterns/w8_factory/index.js
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
class Computer {
|
||||||
|
constructor(brand, os, ram, cpu, ssdSize) {
|
||||||
|
this.brand = brand;
|
||||||
|
this.os = os;
|
||||||
|
this.ram = ram;
|
||||||
|
this.cpu = cpu;
|
||||||
|
this.ssd = ssdSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
showSpects() {
|
||||||
|
console.log(
|
||||||
|
`Brand is ${this.brand} with ${this.os} OS.
|
||||||
|
CPU: ${this.cpu} / RAM: ${this.ram} / SSD size: ${this.ssd}
|
||||||
|
`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1. Create a Builder for this
|
||||||
|
class ComputerBuilder {}
|
||||||
|
|
||||||
|
// 2. Create a factory
|
||||||
|
// 3. Change it using a singleton
|
||||||
|
class ComputerFactory {}
|
||||||
|
|
||||||
|
console.log('ready');
|
5
w11-patterns/w8_observer/Subject.js
Normal file
5
w11-patterns/w8_observer/Subject.js
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
class Subject {}
|
||||||
|
|
||||||
|
class Observer {}
|
||||||
|
|
||||||
|
export { Subject, Observer };
|
11
w11-patterns/w8_observer/index.html
Normal file
11
w11-patterns/w8_observer/index.html
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<script type="module" src="./index.js"></script>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body></body>
|
||||||
|
|
||||||
|
</html>
|
44
w11-patterns/w8_observer/index.js
Normal file
44
w11-patterns/w8_observer/index.js
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
import { Observer, Subject } from './Subject.js';
|
||||||
|
|
||||||
|
class Fish {
|
||||||
|
constructor(weight) {
|
||||||
|
super();
|
||||||
|
this.weight = weight;
|
||||||
|
}
|
||||||
|
getWeight() {
|
||||||
|
return this.weight;
|
||||||
|
}
|
||||||
|
getSpecies() {
|
||||||
|
return this.species;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Salmon extends Fish {
|
||||||
|
constructor() {
|
||||||
|
super(2);
|
||||||
|
this.species = 'Atalntinc salmon';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Tuna extends Fish {
|
||||||
|
constructor() {
|
||||||
|
super(200);
|
||||||
|
this.species = 'Bluefin tuna';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Fisherman {
|
||||||
|
constructor(name) {
|
||||||
|
super();
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main
|
||||||
|
const bob = new Fisherman('Bob');
|
||||||
|
|
||||||
|
const fish1 = new Tuna();
|
||||||
|
const fish2 = new Salmon();
|
||||||
|
// 1. subsribe bob (observer) to fish1 and fish2 (subjects)
|
||||||
|
|
||||||
|
// 2. fishes (subjects) notify when they are caught
|
Loading…
Reference in New Issue
Block a user