Это твой выбор. Кодируйте его так, как вы думаете, будет более понятным. Кстати, я не думаю, что есть случай «соединения класса с несвязанными классами». Скорее, это вопрос превращения косвенного отношения в прямое отношение. Это особенно стоит делать, когда вы обращаетесь к косвенному классу несколько раз из вашего класса. Это также может удалить некоторые зависимости от промежуточных классов, в зависимости от того, как вы устанавливаете прямые отношения.
аю книгу Фаулера по рефакторингу и немного смущен этими двумя запахами кода.
«Цепочки сообщений» - это звонкиa.getB().getC().getValue()
.
«Средний человек» - это метод
class A
{
object getCValue()
{
return b.getCValue();
}
}
Насколько я понимаю, эти два раздела состоят в том, что если у вас есть «Цепочки сообщений», вы сокращаете их, представляя «Средних людей». И если у вас есть «Средние люди», вы превращаете их в «Цепочки сообщений» ...
Очевидно, здесь должно быть какое-то ограничение, иначе у вас будет карусель программиста.В какой момент я должен отдать предпочтение одному над другим?
Один связывает класс с несвязанными классами, другой связывает класс со структурой. Таким образом, в теории мой подход заключается в проверке того, уменьшает ли какое-либо данное изменение один тип связи больше, чем увеличивает другой тип связи. Но разве один тип связи хуже и должен быть взвешен? То есть добавить только один класс связи, если вы можете удалить X структурные связи?