Javanese Online

Интерфейс с единственной реализацией

В книгах по объектно-ориентированному проектированию я не встречал подходящего словосочетания, которое обозначило бы данное явление. Поэтому назову его Monomorphic Interface или Single Implementation Interface — интерфейс с единственной реализацией. Разберём ситуации, в которых такое возникает, а также предпосылки и последствия.

Именование

Имя интерфейса должно отражать абстрактную идею; имена реализаций — как именно работает данный класс. Например: AppendableCharArrayWriter, CharBuffer, FileWriter, PrintStream, StringBuffer, StringBuilder; CharSequenceCharBuffer, String, StringBuffer, StringBuilder; AsynchronousChannelAsynchronousFileChannel, AsynchronousServerSocketChannel, AsynchronousSocketChannel; SetArraySet, CopyOnWriteArraySet, EnumSet, HashSet, LinkedHashSet.

Имя не должно кричать «Смотрите, это интерфейс!», как, например, IService, или «Да это ж реализация!» как ServiceImpl. Привычка заводить интерфейсы без надобности и столь бессмысленно именовать их приводит к мусору в коде, понимать и поддерживать который сложнее.

Комментарии к уроку

Сообщить об ошибке

Javanese.Online в GitHub

Чаты и каналы в Telegram

RSS-лента