facade.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. # Структурный шаблон проектирования ("Фасад")
  2. # Позволяет скрыть сложность системы, путём сведения всех внешних вызовов к одному объекту
  3. class ProviderCommunication:
  4. def receive(self):
  5. print("Получение продукции от производителя")
  6. def payment(self):
  7. print("Оплата поставщику с удержанием комиссии за продажу продукции")
  8. class Site:
  9. def placement(self):
  10. print("Paзмещение на сайте")
  11. def delete(self):
  12. print("Удаление с сайта")
  13. class Database:
  14. def insert(self):
  15. print("Запись в базу данных")
  16. def delete(self):
  17. print("Удаление из базы данных")
  18. class MarketPlace:
  19. def __init__(self):
  20. self._provider_communication = ProviderCommunication()
  21. self._site = Site()
  22. self._database = Database()
  23. def product_receipt(self):
  24. self._provider_communication.receive()
  25. self._site.placement()
  26. self._database.insert()
  27. def product_release(self):
  28. self._provider_communication.payment()
  29. self._site.delete()
  30. self._database.delete()
  31. if __name__ == "__main__":
  32. market_place = MarketPlace()
  33. market_place.product_receipt()
  34. print()
  35. market_place.product_release()
  36. # Получение продукции от производителя
  37. # Paзмещение на сайте
  38. # Запись в базу данных
  39. # Оплата поставщику с удержанием комиссии за продажу продукции
  40. # Удаление с сайта
  41. # Удаление из базы данных