提供一个供客户端可以访问系统的接口,隐藏系统的复杂性

使用场景

  1. 客户端不需要知道服务端复杂的调用关系,只需要调用提供的接口
  2. 接待人员

Demo

  1. """
  2. 外观模式
  3. """
  4. class Shape:
  5. def draw(self):
  6. raise NotImplementedError
  7. class Circle(Shape):
  8. def draw(self):
  9. print("this is circle")
  10. class Rectangle(Shape):
  11. def draw(self):
  12. print("this is rectangle")
  13. class Square(Shape):
  14. def draw(self):
  15. print("this is square")
  16. class ShapeMaker:
  17. def __init__(self):
  18. self.circle = Circle()
  19. self.rectangle = Rectangle()
  20. self.square = Square()
  21. def draw_circle(self):
  22. self.circle.draw()
  23. def draw_rectangle(self):
  24. self.rectangle.draw()
  25. def draw_square(self):
  26. self.square.draw()
  27. if __name__ == '__main__':
  28. s = ShapeMaker()
  29. s.draw_circle()
  30. s.draw_square()
  31. s.draw_rectangle()