设计模式之访问者模式
1. 定义
将算法与其所作用的对象隔离
2. 口语化表述
访问者模式其实就是将具体算法与作用对象分离
举个例子,现在需要使用手机打电话,人已经具备了,就差个手机
不同的手机有不同的操作方式,所以需要人根据具体手机来操作
这就类似于访问者模式,将具体怎么打电话的操作交与人(访问者)来实现
(下面的描述会沿用这个上述这个场景)
3. 个人理解
笔者认为,访问者其实是一种组合 + 动态注入的设计方法
组合表现在,手机有多种,需要去选择
动态注入表现在,人在拿到手机之后再根据实际进行操作
(希望将具体实现与对象分离)
4. 总结
4.1 设计优点
-
单一职责原则
具体算法实现与对象分离
-
开闭原则
无需对上下文进行大范围修改就能够修改以有算法
4.2 适用场景
-
可使用访问者模式来清理的业务逻辑
将具体算法实现抽离