1、修饰模式
通过增加子类的方式来扩展功能,而不是通过继承
具体的方式如下
interface inter { void do(); } A implements inter{ public void do(){ //doSomething; } } B implements inter{ A a; public void do(){ //额外的功能 a.do(); //额外的功能 } } |
2、职责链
有一系列负责处理的类,实现相同的接口,具有大致相同的方法
大致讲就是:我能处理就处理,处理不了就交给其它类来处理
核心的代码就是: handler 为处理类的接口
class A implements handler{ B b; public void do{ if(条件成立){ A的具体解决方案; }else{ b.do(); } } } class B implements handler{ C c; public void do{ if(条件成立){ B的具体解决方案; }else{ c.do(); } } } |
这样就串起来了,很容易理解为什么叫职责链
使用条件:所有的情况都已经知道,但不知道具体用哪一种解决方案