Junior — Senior
33
Выявление недостатков в проектировании класса View
Условие задачи
Определите слабые места в архитектуре класса View и предложите варианты их исправления или оптимизации. Код класса отвечает за форматирование значений с учётом указанных единиц измерения и формирует HTML‑строку.
class View:
def __init__(self, units):
self.units = units
def render(self, data):
label = self.format(data)
return f"<p>{label}</p>"
def format(self, n) -> str:
if self.units == "$":
return '${:.2f}'.format(n)
if self.units == "%":
return '{:.0f}%'.format(n * 100)
return str(data)
Обратите внимание на потенциальные нарушения принципов SOLID, отсутствие обработки ошибок, жёстко закодированные условия и использование глобального состояния. Предложите, как можно улучшить гибкость, тестируемость и расширяемость компонента.