Вопрос

В то время как на этом форуме много хороших примеров, которые содержат примеры муфты и сплоченности, я изо всех сил пытаюсь полностью применить его в мой код. Я могу определить запчасти в моем коде, который может потребоваться изменение. Будут ли какие-либо эксперты Java смогут взглянуть на мой код и объяснить мне, какие аспекты хорошие и плохие. Я не против меняя его сам вообще. Просто многие люди, кажется, не согласны друг с другом, и я трудно понять, какие принципы следовать ...

Это было полезно?

Решение

Я могу рекомендовать книгу Алана и Джеймса Объяснение образцов дизайна - новая перспектива на объектно-ориентированном дизайне (ISBN-13: 978-0321247148):

Cover: Design Patterns explained -- A new perspective on object-oriented design

Это отличная книга о имеет а также это Регионы, включая сплоченность и сцепление в объектно-ориентированном дизайне.

Другие советы

Во-первых, я хотел бы сказать, что основная причина, по которой вы получаете такие различные ответы, заключается в том, что это действительно становится искусством со временем. Многие мнения, которые вы получаете, не догадайтесь до твердого быстрого правила или факта, больше сводятся к общему опыту. Через 10-20 лет вы начинаете помнить, что вы сделали, это вызвало боль, и как вы избегаете делают их снова. Многие ответы работают на некоторые проблемы, но это опыт человека, который определяет их мнение.

На самом деле только 1 действительно большая вещь, которую я бы изменил в своем коде. Я бы подумал о том, что называется командным рисунком. Информация об этом не должна быть трудно найти либо в Интернете, либо в книге GOF.

Основная идея заключается в том, что каждая из ваших команд «Добавить ребенка», «Добавить родитель» стать отдельным классом. Логика для одной команды заключена в один маленький класс, который легко проверить и модифицировать. Этот класс должен быть «выполнен», чтобы выполнить работу от вашего основного класса. Таким образом, ваш главный класс должен иметь дело только с анализом командной строки, и может потерять большинство из них знаний о семье. Он просто должен знать, какую командную строку отображается в какую команду классы и выкрикивают их.

Это мои 2 цента.

Вкратце:

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

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

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

Соединение в простых словах, - насколько один компонент (опять же, представлял класс, хотя не обязательно) знает о внутренних работах или внутренних элементах другого, то есть насколько знает о другом компонент.

Свободная муфта - это способ соединения компонентов в системе или сети, так что эти компоненты друг от друга зависят друг от друга практически возможны ...

В течение длительного времени:

Я написал сообщение об этом. Он обсуждает все это подробнее, с примерами и т. Д. Это также объясняет преимущества того, почему вы должны следовать этим принципам. Я думаю, что это может помочь ...

Муфта определяет степень, в которой каждый компонент зависит от других компонентов в системе. Учитывая два компонента A и B, сколько кода в B должно измениться, если изменения. Сплоченность определяет меру того, насколько когерентной или сильно связанной с различными функциями единого программного компонента. Это относится к тому, что делает класс. Низкое сплоченность означало бы, что класс имеет большое разнообразие действий и не сосредоточен на том, что он должен сделать. Высокая сплоченность тогда означало бы, что класс ориентирован на то, что он должен делать, то есть только методы, относящиеся к намерению класса. Примечание: Хорошие API выставляют свободную муфту и высокую сплоченность. Одна особенно отвратительная форма узкой связи, которая всегда следует избегать, имеет два компонента, которые зависят друг от друга прямо или косвенно, то есть цикл зависимости или циркулярной зависимости. Подробная информация в ссылке нижеhttp://softwarematerial.blogspot.sg/2015/12/coupling-and -acoSion.html.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top