from abc import ABC, abstractmethod, abstractproperty class Builder(ABC): """ The Builder interface specifies methods for creating the different parts of the Product objects. """ @abstractproperty def product(self) -> None: pass @abstractmethod def produce_part_a(self) -> None: pass @abstractmethod def produce_part_b(self) -> None: pass @abstractmethod def produce_part_c(self) -> None: pass