2. Open-closed principle
Принцип открытости/закрытости
класс оружие Weapon
у него три поля type, damage, range (тип, урон, дистанция)
class Weapon {
type: string;
damage: number; // 0 - 100;
range: number; // 0 - 100;
contructor(type: string, damage: number, range: number) {
this.type = type;
this.damage = damage;
this.range = range;
}
}
класс персонаж Character
который может это оружие Weapon принимать через метод
class Character {
name: string;
weapon: Weapon;
contructor(name: string, weapon: Weapon) {
this.name = name;
this.weapon= weapon;
}
принимает оружие
changeWeapon(newWeapon:Weapon) {
this.weapon = newWeapon;
}
}