面向对象的设计原则_ 接口隔离原则
?
?
//interface segregation principle - good exampleinterface IWorkable {public void work();}interface IFeedable{public void eat();}class Worker implements IWorkable, IFeedable {public void work() {// ....working}public void eat() {//.... eating in launch break}}class SuperWorker implements IWorkable, IFeedable{public void work() {//.... working much more}public void eat() {//.... eating in launch break}}class Robot implements IWorkable{public void work() {// ....working}}class Manager {IWorkable worker;public void setWorker(IWorkable w) {worker = w;}public void manage() {worker.work();}}
?
?
总结
如果已经设计成了胖接口,可以使用适配器模式隔离它。
像其他设计原则一样,接口隔离原则需要额外的时间和努力,并且会增加代码的复杂性,但是可以产生更灵活的设计。如果我们过度的使用它将会产生大量的包含单一方法的接口,所以需要根据经验并且识别出那些将来需要扩展的代码来使用它。