从某种角度来说,if else是代码层次的,而filter考虑的角度更多的是业务需求层次的,虽然filter和if else在某些实现逻辑和模式方面相似,甚至有些地方可以相互替代,但毕竟两者是不同环境下考虑的,不应该拿来相比较,什么情况下用filter,什么环境下在代码中用if else实现,对于有经验的开发人员来说,还是比较容易判断的。至于“将if else用在小地方”,则见仁见智了,何谓“小地方”?何谓“大地方”??业务逻辑的实现有其相对成熟的模式,不管是filter也好、对象也好,都是业务实现的手段,可以用不同的方式互相替代,但替代的同时,是不是也要考虑不同业务的不同特性呢?