概念

优点

符合单一职责原则、优秀的扩展性、灵活性

缺点

  • 具体元素对访问者公布细节,违反了迪米特原则
  • 具体元素便跟比较困难
  • 违反了依赖倒置原则,依赖了具体类,没有依赖抽象

应用场景

  • 对象结构中对象对应的类很少改变,但经常需要在此对象结构上定义新的操作
  • 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免这些操作污染这些对象的类,也不希望在增加新操作时修改这些类

代码实现

测试代码

测试结果