Зачем просто, когда можно сложно? (Сложение двух чисел)
Забавные примеры переусложнённого кода
Задача: сложить два числа. Так-так… Что же нам потребуется для её решения? Думаю, семи классов, двух фабрик и фасада будет достаточно… Решение:
\\python from abc import ABC, abstractmethod
class Number: def __init__(self, value): self.value = value
class Operation(ABC): @abstractmethod def apply(self, a, b): …
class Addition(Operation): def apply(self, a, b): return Number(a.value + b.value)
class OperationFactory: _operations = {“add”: Addition} def create(self, name): return self._operations[name]()
class Calculator: def __init__(self, factory): self.factory = factory def calculate(self, name, a, b): return self.factory.create(name).apply(a, b)
class CalculatorFactory: def create(self): return Calculator(OperationFactory())
class CalculatorFacade: def __init__(self): self.calculator = CalculatorFactory().create() def add(self, a, b): return self.calculator.calculate(“add”, Number(a), Number(b))
print(CalculatorFacade().add(2, 3).value) \\
Работает. Но всё же проще так 🙂:
\\python def add(a, b): return a + b \\
· вчера
Может не в тему, но вспомнилась двоичная система исчисления с уроков информатики)
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён