Зачем просто, когда можно сложно? (Сложение двух чисел)

Забавные примеры переусложнённого кода

Задача: сложить два числа. Так-так… Что же нам потребуется для её решения? Думаю, семи классов, двух фабрик и фасада будет достаточно… Решение:

\\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 \\

#python #коддетокс

Зачем просто, когда можно сложно? (Сложение двух чисел) | Сетка — социальная сеть от hh.ru