接口隔離原則(ISP--Interface Segregation Principle)

1、接口隔離的前提是職責單一
2,如果A接口有5個方法,B實現類實現5個方法,C實現類只要3個方法,現在就需要拆分成一個3方法的接口,一個2個接口的方法

public interface IDoor {

    public void open();

    public void close();

    public void doorBell();

    public void catEye();
}

看上面的接口其實是有問題的,有些門是沒有門鈴和貓眼。
public interface IDoor {
    public void open();
    public void close();
}
public interface IDoorBell {
    public void doorBell();

}

public interface IDoorCatEye{
    public void catEye();
}

public class Door implements IDoor, IDoorBell, IDoorCatEye {

    @Override
    public void open() {

    }

    @Override
    public void close() {

    }

    @Override
    public void doorBell() {

    }

    @Override
    public void catEye() {

    }
}
public class Door implements IDoor, IDoorBell, IDoorCatEye {

    @Override
    public void open() {

    }

    @Override
    public void close() {

    }

    @Override
    public void doorBell() {

    }

    @Override
    public void catEye() {

    }
}

最簡單的門
public class Door implements IDoor{

    @Override
    public void open() {

    }

    @Override
    public void close() {

    }
}

1,接口的拆分粒度越小,靈活性越高,拆分太細,維護也困難。
2,如果接口以及很大而且臃腫投入使用了,就用適配器模式適配。

發佈了43 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章