AOP vs Decorator

06-01-08 banq
过滤器是架构设计模式中比较常用的一种,几乎每个灵活动态系统都需要过滤器,特别是当我们的数据以内存状态出现时,过滤器无疑成为领域层的一个核心业务逻辑,当然如果你还是使用面向数据库的编程模式,过滤器功能就被你用SQL语句的where语法给替代了,那么以下你可能不必再看.

http://www.jdon.com/AOPdesign/decorator.htm

banq
2006-01-11 17:46
其实使用filter过滤器也可以替代我们业务中的if else,过滤器起到一种过滤和筛选作用,将符合本过滤器条件的对象拦截下来做某件事情,这就是一个过滤器的功能,多个过滤器组合在一起实际就是if else的组合。

mythmoon
2006-01-11 22:22
bang大哥.这个观点我以前听过,仔细想象还是有点不明白,可否用示例详细说明了!

____________________________

替未明白此道理之道友谢谢先!

banq
2006-01-12 16:00
看看这篇文章:

http://www.jdon.com/artichect/ifelse.htm

如图:

如图,通过一个个条件过滤器我们立体地实现了对信号的分离,如果你使用if else,说明你是将图中的条件1/2/3/4合并在一起,在同一个地方实现条件判断。

wangwei1998
2006-01-16 23:43
从某种角度来说,if else是代码层次的,而filter考虑的角度更多的是业务需求层次的,虽然filter和if else在某些实现逻辑和模式方面相似,甚至有些地方可以相互替代,但毕竟两者是不同环境下考虑的,不应该拿来相比较,什么情况下用filter,什么环境下在代码中用if else实现,对于有经验的开发人员来说,还是比较容易判断的。

至于“将if else用在小地方”,则见仁见智了,何谓“小地方”?何谓“大地方”??业务逻辑的实现有其相对成熟的模式,不管是filter也好、对象也好,都是业务实现的手段,可以用不同的方式互相替代,但替代的同时,是不是也要考虑不同业务的不同特性呢?

猜你喜欢
4Go 1 2 3 4 下一页