Паттерн «Фабрика» (Factory)
Коротко: Фабрика инкапсулирует создание объектов: вызывающий говорит, что ему нужно, а фабрика решает, какой конкретный класс инстанцировать.
Подробнее: В результате вызывающий зависит только от интерфейса (полиморфизм), а не от конкретных классов. Новые варианты можно добавлять в одном месте. Есть простой фабричный метод, а также абстрактная фабрика, создающая целые семейства связанных объектов.
Подробности
class Dog:
def sound(self): returСм. также: одиночка, полиморфизм, внедрение зависимостей, интерфейс