設計原則之接口隔離原則

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();
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章