Вопрос пользователя:
Ответ нейросети:
# Строитель
class Builder:
def prepare_floor(self):
pass
def lay_tiles(self):
pass
def apply_putty(self):
pass
def plaster_walls(self):
pass
def prime_wall(self):
pass
def paint_wall(self):
pass
# Плиточник
class Tiler(Builder):
def prepare_floor(self):
print("Preparing floor")
def lay_tiles(self):
print("Laying tiles")
# Отделочник
class Finisher(Builder):
def apply_putty(self):
print("Applying putty")
def plaster_walls(self):
print("Plastering walls")
# Маляр
class Painter(Builder):
def prime_wall(self):
print("Priming wall")
def paint_wall(self):
print("Painting wall")
# Прораб
class Foreman:
def __init__(self):
self.builder = None
def set_builder(self, builder):
self.builder = builder
def make_floors(self):
self.builder.prepare_floor()
self.builder.lay_tiles()
def level_walls(self):
self.builder.apply_putty()
self.builder.plaster_walls()
def paint_walls(self):
self.builder.prime_wall()
self.builder.paint_wall()
def turnkey_works(self):
self.make_floors()
self.level_walls()
self.paint_walls()
# Пример использования
foreman = Foreman()
tiler = Tiler()
foreman.set_builder(tiler)
foreman.turnkey_works()
finisher = Finisher()
foreman.set_builder(finisher)
foreman.turnkey_works()
painter = Painter()
foreman.set_builder(painter)
foreman.turnkey_works()
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.