В примере описан interface Formatter и несколько реалзиаций этого интерфейса, например HtmlFormatter:
interface Formatter {
data: ReportData;
format(): string;
}
// класс для форматирования в HTML
class HtmlFormatter implements Formatter {
data: ReportData
constructor(data: ReportData) {
this.data = data
}
format(): string {
// форматируем данные в HTML и возвращаем:
return 'html string'
}
}
Мой опыт изучения паттернов в различных источках подсказывает, что если речь идёт не о сущности (Entity), а об утилитарном классе типа Formatter, то "правильнее" было бы передавать данные непосредственно в метод format(), а параметры конструктора использовать лишь для конфигурации (в данном случае конфигурации нет).
Исправленный пример:
interface Formatter {
format(data: ReportData): string;
}
// класс для форматирования в HTML
class HtmlFormatter implements Formatter {
format(data: ReportData): string {
// форматируем данные в HTML и возвращаем:
return 'html string'
}
}
Вопрос к примеру из главы https://ota-solid.now.sh/srp/in-ideal-world/
В примере описан interface Formatter и несколько реалзиаций этого интерфейса, например
HtmlFormatter
:Мой опыт изучения паттернов в различных источках подсказывает, что если речь идёт не о сущности (Entity), а об утилитарном классе типа Formatter, то "правильнее" было бы передавать данные непосредственно в метод
format()
, а параметры конструктора использовать лишь для конфигурации (в данном случае конфигурации нет). Исправленный пример: