Сцепление против сплоченности
Связь и сплоченность - это две концепции, найденные в Java (и во всех других объектно-ориентированных языках). Связность измеряет, насколько каждый из программных модулей зависит от других программных модулей. Сплоченность измеряет, насколько сильно каждая из функций связана внутри модуля. На самом деле, любой объектно-ориентированный язык (включая Java) преследует две основные цели: повышения согласованности и одновременного уменьшения взаимосвязи для разработки наиболее эффективных программ. Эти две метрики разработки программного обеспечения были разработаны Ларри Константином для снижения стоимости модификации и обслуживания программного обеспечения..
Что такое сплоченность?
Сплоченность измеряет, насколько тесно каждая из функций связана в программном модуле. Хорошо структурированные занятия приводят к очень сплоченным программам. Если определенный класс выполняет набор тесно связанных функций, этот класс называется связующим. С другой стороны, если класс выполняет множество совершенно не связанных функций, это означает, что класс совсем не связан. Важно понимать, что отсутствие связности не означает, что общее приложение не имеет требуемой функциональности. Просто без единства будет очень сложно управлять функциональностью, потому что они будут разбросаны по многим неправильным местам, поскольку со временем сложность приложения возрастает. Поддерживать, модифицировать и расширять поведение, разбросанное по всему коду, очень утомительно даже для опытных программистов..
Что такое муфта?
Связность измеряет, насколько каждый из программных модулей зависит от других программных модулей. Взаимодействия между двумя объектами происходят из-за связи. Слабосвязанные программы отличаются высокой гибкостью и расширяемостью. Сильная связь никогда не бывает хорошей, потому что один объект может сильно зависеть от другого объекта. Это кошмар, когда код модифицируется, потому что высокая связь означает, что программистам нужно работать над несколькими местами кода даже для одной поведенческой модификации. Сильная связь всегда приводит к программам с низкой гибкостью и меньшей масштабируемостью / расширяемостью. Однако в таких языках программирования, как Java, полностью избежать связывания невозможно. Но рекомендуется, чтобы программисты делали все возможное, чтобы максимально уменьшить связь. Также возможно иметь некоторую связь, чтобы помочь объектам взаимодействовать друг с другом, не мешая его масштабируемости и гибкости.
В чем разница между сцеплением и сцеплением?
Несмотря на то, что связь и согласованность имеют отношение к качеству модуля в разработке программного обеспечения, они представляют собой совершенно разные концепции. Сплоченность говорит о том, насколько функциональные возможности связаны друг с другом в модуле, а связывание - о том, насколько один модуль зависит от других программных модулей во всем приложении. Для обеспечения наилучшего качества программного обеспечения когезия и связь должны достигать двух противоположных концов их спектров. Другими словами, слабая связь и сильное сцепление обеспечивают лучшее программное обеспечение. Наличие закрытых полей, непубличных классов и закрытых методов обеспечивает слабую связь, в то же время делая все члены видимыми внутри класса, а наличие пакета в качестве видимости по умолчанию обеспечивает высокую согласованность.