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

аю книгу Фаулера по рефакторингу и немного смущен этими двумя запахами кода.

«Цепочки сообщений» - это звонкиa.getB().getC().getValue().

«Средний человек» - это метод

class A
{
    object getCValue()
    {
        return b.getCValue();
    }
}

Насколько я понимаю, эти два раздела состоят в том, что если у вас есть «Цепочки сообщений», вы сокращаете их, представляя «Средних людей». И если у вас есть «Средние люди», вы превращаете их в «Цепочки сообщений» ...

Очевидно, здесь должно быть какое-то ограничение, иначе у вас будет карусель программиста.В какой момент я должен отдать предпочтение одному над другим?

Один связывает класс с несвязанными классами, другой связывает класс со структурой. Таким образом, в теории мой подход заключается в проверке того, уменьшает ли какое-либо данное изменение один тип связи больше, чем увеличивает другой тип связи. Но разве один тип связи хуже и должен быть взвешен? То есть добавить только один класс связи, если вы можете удалить X структурные связи?

Ответы на вопрос(3)

Ваш ответ на вопрос