试想一下刚学面向对象的时候,我们常常会定义一个person类
这个对象有自己的属性----------------年龄,性别,身高....
这个对象也有自己对应的属性-------吃饭,睡觉,打豆豆.....
美中不足的是,比如我们调用吃饭的方法.这个对象只会执行相同的操作,说直观一点.我想在他吃饭的之前喝点小酒,吃饭之后走几步消消食.
大家一定想到了代理.这是一种解决方式.但是有没有其他更完美的解决方式呢?
行为参数化--帮我们解决了.顾名思义,就是把行为作为参数传递给我们方法
在试想一个案例
果农想让程序员帮忙筛选出一车苹果中的青苹果,我们可以写一个青苹果filter进行筛选
果农想让程序员帮忙筛选出一车苹果中的红苹果,我们可以写一个红苹果filter进行筛选
果农想让程序员帮忙筛选出一车苹果中的红苹果,青苹果,紫苹果,我们可以写一个多参数的filter进行筛选
果农想让程序员帮忙筛选出一车苹果中的红苹果和重于500克的苹果,我们再可以写一个多参数的filter进行筛选
有没有觉得很累,有没有办法只需要写一个filter就可以完成这些事儿.
看完上篇文章你应该会写这样的代码
行为参数化,就是一个方法接受多个不同的行为作为参数,并在内部消费他们,完成不同行为的能力
行为参数化可以让代码更好的适应不断变化的要求,减轻未来的工作量