Интерфейсы, что, если не все реализации используют все методы?

Я довольно новичок в программировании интерфейсов и пытаюсь использовать его как основной инструмент для разработки через тестирование.

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


Исключение не реализовано?

Можно ли просто

throw new NotImplementedException()

пока метод не будет реализован, или даже на все время, если он никогда не будет реализован?

(очевидно, с комментарием к исходному коду, говорящим программисту, что «этот метод не должен использоваться, например, такие типы, как «мужской», «женский», никогда не удаляются )?


Разделить?

Или мне следует разделить интерфейс CRUD на Создаваемый, Читаемый (Доступный для поиска ), Обновляемый и Удаляемый? Не загромождает ли это определение моего класса?

PersonManager implements Creatable<Person>, Updateable<Person>, Deletable<Person>, Searchable<Person>

Разделить и объединить?

Или мне следует объединить некоторые интерфейсы, такие как все 4, в CRUD и, возможно, какие-то другие комбинации, такие как чтение + обновление?

Возможно, это также создало бы множество интерфейсов, где нужно было бы щелкнуть большой путь наследования, чтобы узнать, какой интерфейс реализует все желаемые атомарные интерфейсы для текущей ситуации. (Мне нужно прочитать и создать, поэтому какой из них просто реализует два? и это может быстро усложниться)

7
задан Stewbob 2 May 2012 в 13:44
поделиться