from director import Director from builder import ConcreteBuilder1 if __name__ == "__main__": director = Director() concrete_builder_1 = ConcreteBuilder1() director.builder = concrete_builder_1 director.simple_config() simple_product = concrete_builder_1.product simple_product.list_parts() director.advanced_config() advanced_product = concrete_builder_1.product advanced_product.list_parts()
# Builder Pattern is used when: # (1) The creation algorithm of a complex object is independent from the parts # that actually compose the object. # (2) The system needs to allow different representations for the objects that # are being built. # Use cases: # Vehicle Manufacturing # Student Tests from director import Director from builders import ConcreteBuilder1 if __name__ == "__main__": director = Director() builder = ConcreteBuilder1() director.builder = builder print("Standard basic product: ") director.build_minimal_viable_product() builder.product.list_parts() print("\n\nStandard full featured product: ") director.build_full_featured_product() builder.product.list_parts() print("\n\nCustom product: ") builder.produce_part_a() builder.produce_part_b() builder.product.list_parts()