SOLID
Liskov
class Geometry {
getArea() {
throw new Error('Not implemented');
}
}
class SquareGeometry extends Geometry {
constructor() {
this.size = 0;
}
getArea() {
return this.size * this.size;
}
}
class RectangleGeometry extends Geometry {
constructor() {
this.width = 0;
this.height = 0;
}
getArea() {
return this.width * this.height;
}
}
class Square {
constructor() {
this.geometry = new SquareGeometry();
}
}
class Rectangle {
constructor() {
this.geometry = new RectangleGeometry();
}
}
let s1 = new Square();
s1.geometry.size = 10;
s1.geometry.getArea();
let s1 = new Rectangle();
s1.geometry.width = 10;
s1.geometry.heightp = 10;
s1.geometry.getArea();
Last updated
Was this helpful?