行为型--反问者模式

 

定义:

允许操作应用到一组对象上,解耦操作和对象本身。

应用场景:

操作经常增加,对象本身稳定。

特点:

利用了重载,是在编译期间,由参数的声明类型决定的,而非运行时,根据参数的实际类型决定的。

优点:

增加新的操作,可以不要修改对象。非常方便。

 

Single patch和double patch:

Single 执行哪个对象的方法,根据运行时对象类型确定;执行对象的哪个方法,根据编译时的入参类型确定;

Double 执行对象的哪个方法,根据运行时入参类型确定。

c++和java都是single

 

建议:

不用,难理解,难实现;重点是看到能认出来;

可以用工厂模式来替代;

(对于资源文件处理工具这个例子,如果工具提供的功能并不是非常多,只有几个而已,那我更推荐使用工厂模式的实现方式,毕竟代码更加清晰、易懂。相反,如果工具提供非常多的功能,比如有十几个,那我更推荐使用访问者模式,因为访问者模式需要定义的类要比工厂模式的实现方式少很多,类太多也会影响到代码的可维护性。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值