访问者模式分为两部分:访问者和元素(被访问者)。
访问者模式适合元素比较恒定的情况,而访问者则可以很灵活地增减变动,很好地符合开闭原则。一个可以帮助理解的例子是,医院里计价的人和药房里的人可以看成是访问者,而元素则是药单。同一张药单,计价工作人员和药房工作人员的工作内容是不一样的。
这个模式有个很奇特的地方,就是访问者抽象类里面,依赖或关联了具体的元素类。所以说它适合元素比较恒定的情况。
访问者模式分为两部分:访问者和元素(被访问者)。
访问者模式适合元素比较恒定的情况,而访问者则可以很灵活地增减变动,很好地符合开闭原则。一个可以帮助理解的例子是,医院里计价的人和药房里的人可以看成是访问者,而元素则是药单。同一张药单,计价工作人员和药房工作人员的工作内容是不一样的。
这个模式有个很奇特的地方,就是访问者抽象类里面,依赖或关联了具体的元素类。所以说它适合元素比较恒定的情况。
定义:封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。这里先来说一下访不能胜任的场景。
访问者模式
基本概念Visitor封装一些作用于数据结构中的各元素的操作,不同的操作可以借助新的visitor实现
抽象访问者(Visitor)角色:定义一个访问具体元素的接口,为每个具体元素类对应一个访问操作 visit() ,该操作中的参数类型标识了被访问的具体元素
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M