Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Связанность классов, что это? / 21 сообщений из 21, страница 1 из 1
22.09.2020, 14:03
    #40001295
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
Все никак не пойму, как это выглядит на примере (связанность, зацепление) конкретных классов и какие преимущества дает слабая связанность классов? Погуглив нашел отсылки только к одной книге и все. Скиньте пожалуйста ссылки на то где это как-нибудь более детально на примерах показано.
...
Рейтинг: 0 / 0
22.09.2020, 14:31
    #40001315
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
//Класс от которого зависят
public class Bar : IBar
{

}

//Зависимые классы
//Пример сильной зависимости
public class Foo
{
    private readonly Bar _bar;
    public Foo()
    {
        _bar = new Bar();
    }
}

//Пример слабой зависимости
public class Foo
{
    private readonly IBar _bar;
    public Foo(IBar bar)
    {
        _bar = bar;
    }
}


как видно из примера, первый класс сам создает экземпляр класса Bar, класс Foo должен знать этот класс и иметь к нему доступ. Он напрямую от него зависит. Это сильное связывание
А во втором классе Foo, он ничего о классе Bar не знает, он просто запрашивает некий интерфейс, но о том, как и где он реализован, он ничего не знает. Это слабая зависимость.
В любой момент, ты можешь изменить реализацию класса Bar, при этом, переделывать класс Foo будет не нужно.
...
Рейтинг: 0 / 0
22.09.2020, 15:13
    #40001337
da17
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
Roman Mejtes,
а если мы вот так сделаем
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
class Foo {

private mBar;

Foo() {}
    void setBar(Bar bar_) {
        mBar = bar_;
    }
}


мы уменьшим связность или увеличим?

И что касается второго примера, какие конкретно мы выгоды от этого получаем?
...
Рейтинг: 0 / 0
22.09.2020, 17:50
    #40001432
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
da17,

связанность и связность - это разные вещи: Low Coupling и High Cohesion .
...
Рейтинг: 0 / 0
22.09.2020, 20:42
    #40001462
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
skyANA
da17,

связанность и связность - это разные вещи: Low Coupling и High Cohesion .
странный текст, начал за здравие продолжил в стиле "хайтак", я первый встал мои и тапки

Когда пытаются однокренные слова для разных смыслов использовать всегда ахинея получается. Ведь мог же по русски прямо сказать: "конкретность", и сразу бы стало понятно.
...
Рейтинг: 0 / 0
23.09.2020, 05:59
    #40001506
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
kealon(Ruslan)
skyANA
da17,

связанность и связность - это разные вещи: Low Coupling и High Cohesion .
странный текст, начал за здравие продолжил в стиле "хайтак", я первый встал мои и тапки

Когда пытаются однокренные слова для разных смыслов использовать всегда ахинея получается. Ведь мог же по русски прямо сказать: "конкретность", и сразу бы стало понятно.

Кто мог? Не автор статьи так эти термины перевёл на русский

https://www.google.com/search?q=связанность и связность
...
Рейтинг: 0 / 0
23.09.2020, 07:10
    #40001513
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
da17,

никакой разницы в вашем и 1ом моем примере нет, разница лишь в инициализации. При этом у вас класс Foo всё равно сильно связан с конкретным классом
...
Рейтинг: 0 / 0
23.09.2020, 08:40
    #40001523
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
skyANA
kealon(Ruslan)
пропущено...
странный текст, начал за здравие продолжил в стиле "хайтак", я первый встал мои и тапки

Когда пытаются однокренные слова для разных смыслов использовать всегда ахинея получается. Ведь мог же по русски прямо сказать: "конкретность", и сразу бы стало понятно.

Кто мог? Не автор статьи так эти термины перевёл на русский

https://www.google.com/search?q=связанность и связность
вот позорище, ещё и чужие мысли пытался прилепить
они и в 2002 не взлетели
...
Рейтинг: 0 / 0
23.09.2020, 14:04
    #40001672
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
kealon(Ruslan)
skyANA
пропущено...

Кто мог? Не автор статьи так эти термины перевёл на русский

(подозрительная ссылка!) https://www.google.com/search?q=связанность и связность
вот позорище, ещё и чужие мысли пытался прилепить
они и в 2002 не взлетели

Вы открыли для себя понятия связанность (coupling) и связность (cohesion), это я понял.
А недовольны-то вы чем?
...
Рейтинг: 0 / 0
23.09.2020, 14:06
    #40001677
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
Дожили...

скоро пойдут вопросы, что такое "энкримент" и "дыкремент" и зачем оно нужно
...
Рейтинг: 0 / 0
23.09.2020, 14:45
    #40001701
love_bach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
skyANA
kealon(Ruslan)
пропущено...
вот позорище, ещё и чужие мысли пытался прилепить
они и в 2002 не взлетели

Вы открыли для себя понятия связанность (coupling) и связность (cohesion), это я понял.
А недовольны-то вы чем?


видимо русской терминологией: "связность - сцепление" - лучше на русском звучит, да и как-то раньше так и называлось это
...
Рейтинг: 0 / 0
23.09.2020, 18:27
    #40001821
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
love_bach
skyANA
пропущено...

Вы открыли для себя понятия связанность (coupling) и связность (cohesion), это я понял.
А недовольны-то вы чем?


видимо русской терминологией: "связность - сцепление" - лучше на русском звучит, да и как-то раньше так и называлось это

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

Сильное зацепление рассматривается как серьёзный недостаток, поскольку затрудняет понимание логики модулей, их модификацию, автономное тестирование, а также переиспользование по отдельности.
...
Рейтинг: 0 / 0
23.09.2020, 19:00
    #40001851
love_bach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
skyANA
love_bach
пропущено...


видимо русской терминологией: "связность - сцепление" - лучше на русском звучит, да и как-то раньше так и называлось это

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

Сильное зацепление рассматривается как серьёзный недостаток, поскольку затрудняет понимание логики модулей, их модификацию, автономное тестирование, а также переиспользование по отдельности.

А что не так? Я привел в кавычках эту пару терминов, чтобы подчеркнуть что слова с разными корнями проще запомнить :)
...
Рейтинг: 0 / 0
23.09.2020, 19:15
    #40001861
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
love_bach
skyANA
пропущено...

Связность - это cohesion, а не coupling
пропущено...

А что не так?

Вы пишете связность (cohesion), а имеете в виду связанность (coupling).
Сообственно ТС завёл топик про связанность (coupling), а потом ошибся и написал: "если мы вот так сделаем... мы уменьшим связность или увеличим?".

На что я и указал, что связанность и связность - это два разных понятия.
И ссылкой на статью намекнул на то, что можно и самому почитать о том, что к чему и как лучше.
...
Рейтинг: 0 / 0
23.09.2020, 20:19
    #40001877
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
skyANA,

Не морочьте голову человеку, он же по русски спросил. Среди народа за этим словом прочно прижился термин coupling. Никто, кроме отдельных хипстеров, не вводит одновременно однокоренные слова для существенно разносмысловых понятий если хочет донести свою мысль. Иначе выйдет тайное знание из разряда различий между "работать как бобр" и "бобровать" у одного детского писателя.
...
Рейтинг: 0 / 0
23.09.2020, 20:59
    #40001881
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
kealon(Ruslan),

а я и не морочу...
Cohesion, coherence, coherency переводится как связность, прочность.
Coupling - зацепление, сцепление, связанность.

Разные понятия, как ни крути и как бы вам это не нравилось.

Закрывать/открывать и ввозить/вывозить - между прочим тоже однокоренные слова
...
Рейтинг: 0 / 0
23.09.2020, 21:12
    #40001885
love_bach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
skyANA
kealon(Ruslan),

а я и не морочу...
Cohesion, coherence, coherency переводится как связность, прочность.
Coupling - зацепление, сцепление, связанность.

Разные понятия, как ни крути и как бы вам это не нравилось.

Закрывать/открывать и ввозить/вывозить - между прочим тоже однокоренные слова


Ну тут уже не про понятия, а про термины, удачные и не очень. Связность - Зацепление - удачно. Связность - Связанность - не удачно
...
Рейтинг: 0 / 0
23.09.2020, 21:17
    #40001888
love_bach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
А вообще-то, концепция стара как мир. И ее нарушение тоже сплошь и рядом бывает оправданным. Расскажите инженерам космических аппаратов, которые должны вкорячить в ограниченный объем аппаратуру, выполняющую требуемые функции.
...
Рейтинг: 0 / 0
23.09.2020, 21:19
    #40001889
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
love_bach
skyANA
kealon(Ruslan),

а я и не морочу...
Cohesion, coherence, coherency переводится как связность, прочность.
Coupling - зацепление, сцепление, связанность.

Разные понятия, как ни крути и как бы вам это не нравилось.

Закрывать/открывать и ввозить/вывозить - между прочим тоже однокоренные слова


Ну тут уже не про понятия, а про термины, удачные и не очень. Связность - Зацепление - удачно. Связность - Связанность - не удачно

Согласны, что Cвязность - это Cohesion (степень, в которой задачи, выполняемые некоторым программным модулем, связаны друг с другом)?
...
Рейтинг: 0 / 0
23.09.2020, 21:22
    #40001890
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
love_bach
А вообще-то, концепция стара как мир. И ее нарушение тоже сплошь и рядом бывает оправданным. Расскажите инженерам космических аппаратов, которые должны вкорячить в ограниченный объем аппаратуру, выполняющую требуемые функции.

Вернёмся к первому посту автора:
da17
Все никак не пойму, как это выглядит на примере (связанность, зацепление) конкретных классов и какие преимущества дает слабая связанность классов?
Погуглив нашел отсылки только к одной книге и все. Скиньте пожалуйста ссылки на то где это как-нибудь более детально на примерах показано.

Я ему дал ссылки, заодно и указал на то, что Связность - это совсем иное. Чтобы он знал, что гуглить и не путался.
...
Рейтинг: 0 / 0
23.09.2020, 21:28
    #40001892
love_bach
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связанность классов, что это?
skyANA
love_bach
пропущено...


Ну тут уже не про понятия, а про термины, удачные и не очень. Связность - Зацепление - удачно. Связность - Связанность - не удачно

Согласны, что Cвязность - это Cohesion (степень, в которой задачи, выполняемые некоторым программным модулем, связаны друг с другом)?

Согласен :)
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Связанность классов, что это? / 21 сообщений из 21, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]