设计原则之接口隔离原则

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计原则之接口隔离原则相关的知识,希望对你有一定的参考价值。

segregate   v.隔离
se 蛇  gre green格林  gate门
蛇被格林用门隔离了。
设计原则之接口隔离原则
动机:
        客户不应该被强制实现他们不用的方法。应该用多个小的接口代替庞大功能全的接口。
结论:        该原则在代码设计的时候就要考虑。可以使用适配器模式将胖接口隔离。
Bad Example:    缺点:
        1、如果新增一个robot机器人工人,那么eat方法就是多余的了。
// interface segregation principle - bad example
interface IWorker {
    public void work();
    public void eat();
}
class Worker implements IWorker{
    public void work() {
        // ....working
    }
    public void eat() {
        // ...... eating in launch break
    }
}
class SuperWorker implements IWorker{
    public void work() {
        //.... working much more
    }
    public void eat() {
        //.... eating in launch break
    }
}
class Manager {
    IWorker worker;
    public void setWorker(IWorker w) {
        worker=w;
    }
    public void manage() {
        worker.work();
    }
}
Good Example    好处:
        1、接口功能最小化,需要哪个加哪个。
// interface segregation principle - good example
interface IWorker extends Feedable, Workable {
}
interface 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 Robot implements IWorkable{
    public void work() {
        // ....working
    }
}
class SuperWorker implements IWorkable, IFeedable{
    public void work() {
        //.... working much more
    }
    public void eat() {
        //.... eating in launch break
    }
}
class Manager {
    Workable worker;
    public void setWorker(Workable w) {
        worker=w;
    }
    public void manage() {
        worker.work();
    }
}


本文出自 “不死的小强” 博客,请务必保留此出处http://qianray.blog.51cto.com/4607992/1878307

以上是关于设计原则之接口隔离原则的主要内容,如果未能解决你的问题,请参考以下文章

「设计模式」六大原则之四:接口隔离原则小结

「设计模式」六大原则之四:接口隔离原则小结

七大设计原则之接口隔离原则应用

设计原则之接口隔离原则

6大设计原则之接口隔离原则

设计模式之设计原则-接口隔离原则