Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
BigDanceMouse
5 / 5 / 1
Регистрация: 26.01.2014
Сообщений: 69
#1

Объясните про агрегацию (она же композиция, она же включение) - Objective-C

26.09.2014, 11:32. Просмотров 926. Ответов 5
Метки нет (Все метки)

Добрый день!
В одной очень умной книжке на англ языке встретился с понятием Object Composition. Нашел варианты перевода как агрегация, включение и композиция. Что это такое мне не совсем понятно (кроме того что это альтернатива наследования) по этому прошу дать объяснение:
1. Что это, собственно, за зверь такой,
2. Как он реализуется в Obj-C,
3. В каких случаях его лучше применять,
4. Правильно ли я понимаю что , создав например UITableViewController, принимающий протоколы TableViewDataSource и Delegate, я получаю объект, который одновременно является наследником UIViewController-а и агрегатом (или как это правильно называется) UITableView?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2014, 11:32     Объясните про агрегацию (она же композиция, она же включение)
Посмотрите здесь:

При нажатии на форму она зависает, и требуется просто убрать фокус с неё что бы она отвисла - Visual Basic
При нажатии на форму она зависает, и требуется просто убрать фокус с неё что бы она отвисла. не думаю что это вызвано программным...

Задача Джонсона, она рабочая только нужно дописать чтобы она находила время простоя при оптимальной перестановке - VBA
Sub АлгоритмДжонсона() 'Курсовая работа по "Математическим методам" 'Группа 31-П 'Студентка Комарова К.С. Dim N As Integer, M...

Хотелось бы узнать что это за программа LabView. Где и для чего она используется. И перспективна ли она то есть стоит ли ее изучать? - LabVIEW
Не ругайте если не в том разделе создал тему. Вообщем вопрос такой. Хотелось бы узнать что это за программа LabView. Где и для чего она...

Объясните, как работает sizeof() и зачем она в этой программе - C++
Напишите программу, которая, используя только унарные, бинарные операторы и sizeof() выводит, введѐнную пользователем переменную, логически...

Вывод строки символов в обратном порядке - Assembler
программа должна выводить зеркально отображенную строку, она работает только когда задаешь максимально низкую длину строку она не...

Заметил при включениях рябь монитора при включение win 7. Спустя некоторое время она проходит. - Материнские платы
У меня возникла вот такая вот проблема с Gigabyte GA-78LMT-S2P. Имею такую вот конфигурацию. Процессор QuadCore AMD Phenom II X4 945,...

Задача про кирпич - как можно написать компактнее программу, чтобы она работала? - VBA
Sub Кирпич() a = InputBox("Ширина кирпича a") b = InputBox(" Высота кирпича b") c = InputBox(" Длина кирпича c") x = InputBox("...

Изменить структуру Person так, чтобы она также хранила информацию про адрес сотрудника - C#
Нужно изменить структуру Person так, что бы она также хранила информацию про адрес сотрудника (string переменная), возраст - byte...

Объясните, где задается функция, где расчитывается и как она называется - C++
Объясните где задается функция, где расчитывается и как она называется.заранее спасибо #include <iostream> #include <stdio.h> ...

И снова она - математика! - C++
День добрый) Сижу пишу контрольные, что-то совсем запарился. Не могу понять как нужно написать прогу. С кодом помогать не нужно, вопрос...

GF9800 GT - как она? - Видеокарты
как вам видеокарта Gforse 9800 gt

Реклама, она повсюду - Удаление вирусов
Здравствуйте , такая ситуация , я не знаю , что сделала моя сестра с её ноутом , но реклама везде , браузер хром , стоит АД блок , вирусов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
26.09.2014, 12:35     Объясните про агрегацию (она же композиция, она же включение) #2
Агрегация != композиции.
С точки зрения терминологии можно рассмотреть агрегацию как "слабую" связь нескольких сущностей.
Где под "слабой" связью я подразумеваю то, что обе сущности являются независимыми друг от друга.
Например у вас есть системный блок и клавиатура подсоединенная к нему через интерфейс. Возьмите молоток и разбейте мышь - сситемный блок останется.

Композиция же подразумевает "сильную" связь между объектами типа master-slave.
Если позволите можно рассмотреть связь фараона к его рабам/женам.
Когда фараон умирал - всю его свиту убивали и хоронили вместе с фараонам.
Хотя этот пример мне нравится меньше чем пример из википедии про дом, в котором есть комнаты, ибо тут прямая связь, а в примере с фараонами происходило действо убиения при срабатывании триггера на событие смерти фараона

В вашем примере (4) UITableViewController будет включать в себя UITableView, создавая композицию.
Агрегация будет у вас тогда, когда у вас есть UITabBarController с композицией к UIViewController(1) и UIViewController(2).
Вот между UIViewController 1 и 2 будет композиция, если у них есть указатели друг на друга.
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
26.09.2014, 12:56     Объясните про агрегацию (она же композиция, она же включение) #3
какие слова то умные.

wikipedia.org/wiki/Агрегирование_(программирование)

Наследование vs Композиция vs Агрегация
BigDanceMouse
5 / 5 / 1
Регистрация: 26.01.2014
Сообщений: 69
26.09.2014, 22:31  [ТС]     Объясните про агрегацию (она же композиция, она же включение) #4
zulkis, noname_club, Все это время я думал =))
Если, к примеру, я создаю в контроллере экземпляр UIAlertView с делегатом == self, то это будет композиция, так как мой контроллер владеет протоколом Алерта?
А если я в контроллере перехожу в другой контрллер, которому передаю какие-то данные, то это будет агрегация?
Как-то эта тема оказалась достаточно сложной для меня.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
26.09.2014, 22:45     Объясните про агрегацию (она же композиция, она же включение) #5
BigDanceMouse, протоколом нельзя владеть :/
Его можно реализовать...
BigDanceMouse
5 / 5 / 1
Регистрация: 26.01.2014
Сообщений: 69
26.09.2014, 23:58  [ТС]     Объясните про агрегацию (она же композиция, она же включение) #6
zulkis, В смысле: мой контроллер владеет экземпляром алерта. Принимает протокол алерата. В остальном я правильно понял?
Yandex
Объявления
26.09.2014, 23:58     Объясните про агрегацию (она же композиция, она же включение)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru