Ребят, спасибо. Подача материала лучше всего, что встречал в сети. Низкий Вам поклон за проделанную работу. Продолжайте в том же духе!Чем могу тем поддержу. Вот бы в ВУЗах таких преподов...но такого не будет по понятным причинам.
Поправьте если не прав, но кажется корректно было бы сказать наоборот на 2:14, а именно: "Основной объект полностью контролирует жизненный цикл объектов которые зависят от него" (машина контролирует жизненный цикл двигателя)... Ну в смысле, если уничтожить машину, то и её двигатель уничтожится. Разве не так?
не прав, машина зависит от двигателя, воспринимай это как состояние машины зависит от двигателя, и от двигателя могут зависеть не только машина, а и мотоцикл, и самолёт и так далее, двигатель не может зависеть от самолета, машины, мотоцикла, но может зависеть от каких-то там форсунок, масла, ещё какой-то хуйни
Розумники, а в усіх сферах Ви змоглиб також, чи Ви вже все зробили в житті і звертатись зверхньо для Вас, як бальзам на душу. Скромніше себе поводьте вчителі, а то вислів: "для тупих", чи для "самых маленьких", може Ви вже все зрозуміли і вже керуєте всесвітом,. Поважайте спільноту і конкретного користувача, бо залежите від них, Вам же потрібен глядач, а якщо глядача облають "поважні " вчителі, то яки б ви не були розумні глядач не повернеться, а буде шукати своє в іншому місті чи середовищі. Врахуйте відвертість глядача, та поводьте себе як треба. З повагою до спільноти!
Спасибо ребята! Если можно, сделайте пример связи между классами, использование одного метода в нескольких классах и его редактирование. Интересует доступ через объект класса. Хочу построить иерархическую структуру из классов (чтобы можно было использовать как прямое наследование "чайлд родитель" так и выборочно использовать методы из разных классов), но не знаю как правильно это сделать. :(
Так это же обычный полиморфизм, если я правильно понял. Создаете абстрактный класс, и абстрактный метод, в конкретных классах переопределяете метод и вызываете в зависимости от контекста.
Чем дальше - тем больше программирование напоминает астрологию: объемно, интересно, и куча способов об этом поговорить ))) Но по факту же все эти названия типов отношений - тема, высосанная из пальца.
почему высасонное? вот будешь ты с коллегой общатсья о своем коде можешь сказать, что у тебя тут агрегация, а можешь рассказывать в деталях чтобы он понял какой вариант лучше?
Имеются 2 вопроса, буду благодарен за разъяснения. Во первых: при рассмотрении реализации речь шла об, собственно, реализации интерфейсов. Но является ли реализацией наследование абстрактного класса (с присутствующей частичной реализацией или без неё) или это всё же наследование? Ибо без реализаций методов абстрактный класс мало чем отличается от интерфейса, разве что класс может реализовывать несколько интерфейсов, но наследовать только один класс. И второй вопрос: так в чем, собственно, разница между композицией и агрегацией? Что в композиции объект родитель полностью управляет подчинённым объектом, а при агрегации возможна частичная инициализация объекта вне объекта владельца?
Первый вопрос. Впринципе, реализация и наследование в основном используются, чтобы открыть путь к полиморфизму, так что это почти одно и то же, с тем лишь отличием, что реализовать можно куча всего, а батя всего один может быть (если я где-то ошибся, поправьте). Скорее всего, если ты делаешь абстрактный класс чисто с абстрактными методами и свойствами, то уж лучше сделать этот класс интерфейсом, так как абстрактные классы нужны, чтобы определить какой-то общий функционал у схожих объектов. Поэтому в большинстве случаев, абстрактный класс НАСЛЕДУЮТ, ибо, как я описал выше, лучше сделать интерфейс, если нет никакой функциональности. Второй вопрос. Ну в видео всё говорится, и да ты правильно всё понял. Композицию можно объяснить ещё немного по-другому: Композиция - это когда объект живёт внутри другого объекта, ну можно привести пример с плодом в утробе и матерью)
Хм а как мне (чисто для примера) наглядно приминить это? Просто я человек который привык все воспринимать визуально и мне тяжело понять всю основу. Ты не мог бы(пожалуста) сделать какую нибудь игру или приложение на видео. Желательно в c#. Думаю меня многие поддержат. Спасибо за внимание.
1:46 ЧТО ЭТО? ЗАЧЕМ ЭТО? мы обращаемся к объекту Team, у этого объекта есть массив с Player, у Player есть объект Team.... и так до бесконечности, где такая хрень нужна
Для того чтобы можно было вычислить принадлежность игрока к комманде и наоборот, какие игроки имеются к комманде. К примеру таким образом если игрок нарушил правила мы зная к какой комманде он принадлежит можем понять какую команду штрафовать. И обратно: зная какие игроки в какой комманде мы знаем каких игроков какую сторону поля расставлять. Так же это не редко хорошо применять во всяких иерархичных древах где мы имеем куча разделений по ветвям и мы можем как от корня добраться до любого конца его ветки так и от любой ветки добраться до её корня.
@@Milk-gw1zl С чего вдруг стек переполнится? Мы создаём объект Team, он лежит себе спокойно в куче, никого не трогает. Потом мы создаём экземпляры Player'ов в их свойство Team "кладём" ссылку на адрес в памяти, где хранится тот объект Team. И всё. CLR же не будет постоянно копировать объекты, вместо этого он будет копировать ССЫЛКИ на эти объекты, которые являются просто числами (адресами в памяти). К слову, структуры хранятся в стеке - соответственно они уже будут копироваться (но структуры всё ещё можно передавать по ссылке через ref, out, in) Ну и в классе Team не массив игроков, а список) Могу ошибаться, ибо сам только учусь, так что поправьте, если есть ошибки
А зачем нужны эти умные слова? Я до этого знал про наследование и агрегацию и в принципе был доволен. В паттернах как раз таки эти понятия и различаются.