Образец делегации, необычное название дизайна интерфейса в ООП?

Я - новый посетитель к iOS от C#/Явский фон. У меня есть статьи чтения, обсуждая образец делегации и насколько важный это. Как только я начал работать с ним, я заметил, что это действительно просто проектирует интерфейсы и мимолетные данные вокруг использования определенных методов. То заявление верно? для гуру iOS, которые знают .net или Яву, я могу сказать, что образец делегации - просто дизайн интерфейса и использование методов, чтобы раздать данные между классами то орудие тот интерфейс? или динамический характер цели - C то, чтобы заставлять меня пропустить некоторый другой сильный аспект?

2
nl ja de
Я, не совсем несомненно, буду честен, но здесь являюсь подобным вопросом, который задают наоборот. Это может помочь немного: stackoverflow.com/questions/1209943/…
добавлено автор Firo, источник
Я, не совсем несомненно, буду честен, но здесь являюсь подобным вопросом, который задают наоборот. Это может помочь немного: stackoverflow.com/questions/1209943/…
добавлено автор Firo, источник
"Делегация" в Цели-C - действительно, довольно приземленное понятие, которое, кажется, предмет значительного страха теми, кто считает его специальной функцией. Объективный-C "протокол" фактически идентичен Яве "интерфейс", например, и у Явы есть подобные особенности API в их графических интерфейсах, используя различную терминологию.
добавлено автор Hot Licks, источник
"Делегация" в Цели-C - действительно, довольно приземленное понятие, которое, кажется, предмет значительного страха теми, кто считает его специальной функцией. Объективный-C "протокол" фактически идентичен Яве "интерфейс", например, и у Явы есть подобные особенности API в их графических интерфейсах, используя различную терминологию.
добавлено автор Hot Licks, источник

3 ответы

Делегация отличается от дизайна интерфейса.

Интерфейс на Яве и C# - коллекция объявлений метода. Интерфейс - своего рода класс (т.е. тип), который могут осуществить другие классы. Если класс осуществляет интерфейс, который означает, что осуществляет все методы, объявленные интерфейсом.

Ценность программирования интерфейсов использования состоит в том, что можно создать методы, которые принимают объекты, которые осуществляют тот интерфейс, не разделяя иерархию реального класса.

Типичная проблема в объектно-ориентированном программировании, которое возникает, состоит в том, как определить операцию с точки зрения некоторых других операций абсолютно абстрактным способом, положившись только на некоторую простую собственность объекта. Например, вы хотели бы осуществлять сортировку algortihm, который может работать над любым объектом, который предоставляет compareTo метод, который сравнивает два объекта видеть, в какой заказ они входят. Без интерфейсов можно только написать алгоритм сортировки, который работает над всеми типами объектов, произошедшими от общего суперкласса. С интерфейсами, достаточно для каждого класса хочет быть в состоянии быть поддающимся сортировке, чтобы осуществить интерфейс Sortable , который объявляет, что отдельный метод compareTo (говорит).

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

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

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

2
добавлено
Хорошо, таким образом, это - польза, но я не соглашаюсь с некоторыми заявлениями здесь, в делегации класс делегата, который должен соответствовать протоколу, является видом выполнения того же самого как подклассифицирующий (не говорящий о дополнительных методах здесь). в смысле в C# класс осуществляет интерфейс, в Цели C класс делегата соответствует протоколу.
добавлено автор Huang, источник
Я знаю, что множественное наследование достигается через интерфейсы на Яве C# и that' s различие, но для не академической выгоды и использования реального мира они оба все еще осуществляются тот же самый путь. в Цели C вы объявляете protocl, вы говорите, какие методы находятся в ней, и класс делегата соответствует ей в OO (C#, JAVA), вы объявляете интерфейс (контракт) что весь класс, осуществляющий эту интерфейсную потребность осуществить все методы в той же самой подписи, как определено в этом интерфейсе.
добавлено автор Huang, источник
Объективный-C протокол и интерфейс Java фактически идентичны в функции. Ни у какого нет ничего действительно, чтобы сделать с образцами делегата кроме предоставления возможности их без потребности в тщательной подклассификации.
добавлено автор Hot Licks, источник
У Явы есть понятия, фактически идентичные "делегатам", но I' m, не вспоминая терминологию прямо сейчас. I' m размышление их можно назвать "обработчиками событий".
добавлено автор Hot Licks, источник

Делегация отличается от дизайна интерфейса.

Интерфейс на Яве и C# - коллекция объявлений метода. Интерфейс - своего рода класс (т.е. тип), который могут осуществить другие классы. Если класс осуществляет интерфейс, который означает, что осуществляет все методы, объявленные интерфейсом.

Ценность программирования интерфейсов использования состоит в том, что можно создать методы, которые принимают объекты, которые осуществляют тот интерфейс, не разделяя иерархию реального класса.

Типичная проблема в объектно-ориентированном программировании, которое возникает, состоит в том, как определить операцию с точки зрения некоторых других операций абсолютно абстрактным способом, положившись только на некоторую простую собственность объекта. Например, вы хотели бы осуществлять сортировку algortihm, который может работать над любым объектом, который предоставляет compareTo метод, который сравнивает два объекта видеть, в какой заказ они входят. Без интерфейсов можно только написать алгоритм сортировки, который работает над всеми типами объектов, произошедшими от общего суперкласса. С интерфейсами, достаточно для каждого класса хочет быть в состоянии быть поддающимся сортировке, чтобы осуществить интерфейс Sortable , который объявляет, что отдельный метод compareTo (говорит).

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

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

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

2
добавлено
Хорошо, таким образом, это - польза, но я не соглашаюсь с некоторыми заявлениями здесь, в делегации класс делегата, который должен соответствовать протоколу, является видом выполнения того же самого как подклассифицирующий (не говорящий о дополнительных методах здесь). в смысле в C# класс осуществляет интерфейс, в Цели C класс делегата соответствует протоколу.
добавлено автор Huang, источник
Я знаю, что множественное наследование достигается через интерфейсы на Яве C# и that' s различие, но для не академической выгоды и использования реального мира они оба все еще осуществляются тот же самый путь. в Цели C вы объявляете protocl, вы говорите, какие методы находятся в ней, и класс делегата соответствует ей в OO (C#, JAVA), вы объявляете интерфейс (контракт) что весь класс, осуществляющий эту интерфейсную потребность осуществить все методы в той же самой подписи, как определено в этом интерфейсе.
добавлено автор Huang, источник
Объективный-C протокол и интерфейс Java фактически идентичны в функции. Ни у какого нет ничего действительно, чтобы сделать с образцами делегата кроме предоставления возможности их без потребности в тщательной подклассификации.
добавлено автор Hot Licks, источник
У Явы есть понятия, фактически идентичные "делегатам", но I' m, не вспоминая терминологию прямо сейчас. I' m размышление их можно назвать "обработчиками событий".
добавлено автор Hot Licks, источник

Делегация отличается от дизайна интерфейса.

Интерфейс на Яве и C# - коллекция объявлений метода. Интерфейс - своего рода класс (т.е. тип), который могут осуществить другие классы. Если класс осуществляет интерфейс, который означает, что осуществляет все методы, объявленные интерфейсом.

Ценность программирования интерфейсов использования состоит в том, что можно создать методы, которые принимают объекты, которые осуществляют тот интерфейс, не разделяя иерархию реального класса.

Типичная проблема в объектно-ориентированном программировании, которое возникает, состоит в том, как определить операцию с точки зрения некоторых других операций абсолютно абстрактным способом, положившись только на некоторую простую собственность объекта. Например, вы хотели бы осуществлять сортировку algortihm, который может работать над любым объектом, который предоставляет compareTo метод, который сравнивает два объекта видеть, в какой заказ они входят. Без интерфейсов можно только написать алгоритм сортировки, который работает над всеми типами объектов, произошедшими от общего суперкласса. С интерфейсами, достаточно для каждого класса хочет быть в состоянии быть поддающимся сортировке, чтобы осуществить интерфейс Sortable , который объявляет, что отдельный метод compareTo (говорит).

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

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

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

2
добавлено
Хорошо, таким образом, это - польза, но я не соглашаюсь с некоторыми заявлениями здесь, в делегации класс делегата, который должен соответствовать протоколу, является видом выполнения того же самого как подклассифицирующий (не говорящий о дополнительных методах здесь). в смысле в C# класс осуществляет интерфейс, в Цели C класс делегата соответствует протоколу.
добавлено автор Huang, источник
Я знаю, что множественное наследование достигается через интерфейсы на Яве C# и that' s различие, но для не академической выгоды и использования реального мира они оба все еще осуществляются тот же самый путь. в Цели C вы объявляете protocl, вы говорите, какие методы находятся в ней, и класс делегата соответствует ей в OO (C#, JAVA), вы объявляете интерфейс (контракт) что весь класс, осуществляющий эту интерфейсную потребность осуществить все методы в той же самой подписи, как определено в этом интерфейсе.
добавлено автор Huang, источник
Объективный-C протокол и интерфейс Java фактически идентичны в функции. Ни у какого нет ничего действительно, чтобы сделать с образцами делегата кроме предоставления возможности их без потребности в тщательной подклассификации.
добавлено автор Hot Licks, источник
У Явы есть понятия, фактически идентичные "делегатам", но I' m, не вспоминая терминологию прямо сейчас. I' m размышление их можно назвать "обработчиками событий".
добавлено автор Hot Licks, источник
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

iOS Developers — русскоговорящее сообщество
iOS Developers — русскоговорящее сообщество
2 400 участник(ов)

Общаемся на темы, посвященным iOS-разработке, Swift, Objective-C, SDK, Rx, Cocoa и т.д.