2015-03-18 2 views
1

Меня спросили сегодня в интервью, что представляет собой принцип разделения сегментов и что представляет собой противоположный случай или принцип этого.В отличие от принципа разделения интерфейса

ISP ясен для меня, но я не знаю второй части вопроса, что является противоположным принципом для интернет-провайдера?

+1

Я полагаю [объект] бога (http://en.wikipedia.org/wiki/ God_object) –

ответ

3

Материал из Википедии:

Принцип интерфейса сегрегации (ISP) утверждает, что ни один клиент не должен быть вынужден зависеть от методов его не использует.

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

В качестве примера (сначала с интерфейсами):

public interface Book { 

    String getAuthor(); 
    String getGenre(); 
    String getPageCount(); 
    String getWeight(); 
} 

public interface EBook extends Book { 
    // Oh no - ebooks don't have weight, so that should always return zero! 
    // But it makes no sense to include it as an attribute of the interface. 
} 

Пример с абстрактными методами:

+0

Или изменяемые интерфейсы коллекции ... – chrylis

+0

@ Макото, может ли линия быть формой? ... возможно также нарушение LSP. – CSharper