责任链是一些列的处理,将一系列的动作放在一个集合中,一个对象进来以后,要挨个执行,除非某个处理返回false。
最有代表的就是Filter和Interceptor.
耦合啥意思?A类修改B类也修改。A跟B耦合了
耦合的级别:最高级就是继承-聚合(字段引用)- 方法参数含有其他对象。
例如小时候玩的坦克大战,墙,子弹,坦克每一种物体都不止一个,如果还要加物体,又得创建这个物体,为了方便起见让这些物体继承一个类(Collider),将所有物体放置这个类的集合中,统一创建对象,每个对象有自己的创建方法。这样每次新加一个物体就方便很多。没有这个类之前,物体之间的相互碰撞呢,是通过一个方法一个方法实现的,坦克和坦克的碰撞,坦克和子弹的碰撞,坦克和墙的碰撞,等等。现在都在一个类了,如果碰撞呢?
定义好一个接口Collider,有collide方法。定义好坦克和坦克碰撞的类、坦克和子弹碰撞的类,坦克和墙碰撞的类等等
定义一个ColliderChain.
为什么需要ColliderChain,直接使用集合就好了。
因为ColliderChain要实现碰撞类(Collider)的接口。
这样链条和链条就能组合起来,这才是责任链的精髓。