Рубрики
1. Single responsibility principle SOLID

SOLID «EXAMPLE» класс Пользователь

создаём объект — экземпляр класса пользователя

const generateId = () => Date.now() * Math.random();

class User {
 id: number;
 username: string;
 password: string;
у пользователя есть конструктор
которому передаем имя и пароль
constructor(username: string, password:string) {
 this.id = generateId();
 this.username = username;
 this.password = password;
}
}

потом класс разрастается
добавляем куча методов, которые к эту классу не относятся
изначально по хорошему эти методы стоило вынести в отдельные классы которые решают отдельные задачи

const generateId = () => Date.now() * Math.random();

class User {
 id: number;
 username: string;
 password: string;
у пользователя есть конструктор
которому передаем имя и пароль
constructor(username: string, password:string) {
 this.id = generateId();
 this.username = username;
 this.password = password;
}
saveToDatabase(){
//сохранение пользователя в бд
}
log(){
 console.log(this);
}
send(){
 return http.send()
}
}
//репозиторий за сохранение
class UserRepository {
 save(user: User) {
 // сохранение пользователя в бд
 }
}
//логгер за логирование
class UserLogger {
 log(user: User) {
  console.log(user)
 }
}
//контроллер за отправку
class UserController {
 send(user: User) {
  return http.send()
 }
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *