Re[5]: бессмысленные интерфейсы
От: · Великобритания  
Дата: 18.02.22 23:17
Оценка: +2
Здравствуйте, AlexGin, Вы писали:

AG>Здесь и у Вас, и у меня — две сушности.

ну никто не мешает сделать одну:
class node
{
  std::vector<std::shared_ptr<node>> childs;
};


AG>Но у меня — универсальный узел и интерфейс к нему.

Нет, у тебя узел и иузел.

AG>Именно наличие программного интерфейса — позволяет уменьшить связанность (coupling) в проекте.

А конкретно в данном случае что именно уменьшается?

AG>За счёт этого, получим упрощение архитектуры и уменьшение количества ошибок.

Введение новой сущности интерфейса не упрощает, а усложняет.

AG>Конечно же, можно было обойтись и без интерфейса, однако так красивее и понятнее.

Эмоции. "Я так всегда делал и мне нравится"

AG>Кроме того, имеется заложенная база — как для развития (новые типы узлов),

yagni. Вот _если_ появятся новые узлы — вот тогда и добавим интерфейс. Впрочем, тут тоже могу условно согласиться. Если средство разработки не умеет в рефакторинг "выделить интерфейс", то приходится прыгать... впрочем и без авто-тулзов ввести интерфейс _при необходимости_ относительно просто. Проще, чем постоянно копаться в сотнях интерфейсов, созданных на всякий случай.

AG>так и для тестирования основы нашего проекта.

Вот тут могу согласиться для некоторых ЯП. Если ЯП не позволяет тестировать без интерфейсов, то их приходится вводить на каждый чих.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.