Sobes.tech
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, отсутствие обработки ошибок, жёстко закодированные условия и использование глобального состояния. Предложите, как можно улучшить гибкость, тестируемость и расширяемость компонента.