Что такое SOLID (часть 4). Принцип разделения интерфейса

Инициал «I» означает «Interface segregation principle», что значит «Принцип разделения интерфейса». Это означает что клиенты не должны зависеть от интерфейсов, которые они не используют (что нужно создавать только небольшие и узконаправленные интерфейсы, не перегруженные ненужными методами).

Как следовать принципу ISP

Каждый интерфейс должен существовать для определенных задач и содержать только те методы, которые эти задачи решают.

Пример с нарушением принципа:


interface Document {
    void open();
    void save();
    void close();
}
class TextEditor implements Document {
    public void open() {
        // Открыть документ
    }

    public void save() {
        // Сохранить документ
    }

    public void close() {
        // Закрыть документ
    }
}

Пример с правильным использованием принципа:

interface Openable {
    void open();
}

interface Savable {
    void save();
}

interface Closable {
    void close();
}

// Каждый класс выполняет только то что ему нужно и 
// наследуется только от тех что будет использоваться

class TextEditorOne implements Openable, Closable {
    public void open() {
        // Открыть документ
    }
   
    public void close() {
        // Закрыть документ
    }
}
class TextEditorTwo implements Savable, Closable {
   
    public void save() {
        // Сохранить документ
    }

    public void close() {
        // Закрыть документ
    }
}
Запись опубликована в рубрике Это база с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий