(замісник)
структурний патерн
Забезпечити певну додаткову логіку
В нас є двері в офіс, їх задача нас впускати, але ж не всі повинні ходити
Встановити кодовий замок
interface iDoor {
open(): void
close(): void
}
class SocialTechDoor implements iDoor {
open() {
console.log('Opening door')
}
close() {
console.log('Closing door')
}
}
class SecurityDoor implements iDoor {
constructor(door: iDoor) {
this.door = door
}
private authenticate(password): boolean {
return password === 'pots'
}
public open(password): void {
if (this.authenticate(password)) {
this.door.open()
} else {
console.log('Пшол вон')
}
}
public close(): void {
this.door.close()
}
}const door = new SecurityDoor(
new SocialTechDoor()
)
door.open('invalid') // Пшол вон
door.open('pots') // Саня, захади
door.close() // Да-да, Рамира не пускай)