Является ли Context в Android реализацией сложной схемы проектирования Стратегии? - PullRequest
0 голосов
/ 05 января 2019

Я читал несколько руководств и одну книгу о шаблоне Strategy. Я заметил, что во всех руководствах есть ссылка на класс Context, который предпочитает делегирование реализации, решая некоторые специфические поведения.
Поскольку я управляю в Android классом, объектом Context ежедневно, я хотел бы знать, рассматривали ли инженеры SDK Android Context как конкретную (сложную) реализацию шаблона стратегии.

Ответы [ 3 ]

0 голосов
/ 05 января 2019

Как говорит Википедия , шаблон разработки стратегии позволяет выбирать алгоритм во время выполнения (где существует множество возможных реализаций). Класс Context не содержит ни одного алгоритма. А для сервисов, к которым он предоставляет доступ, во время выполнения не выбрано несколько возможных реализаций; ОС предоставляет только одну реализацию.

Следовательно, нет, класс Context не имеет ничего общего с шаблоном Strategy.

0 голосов
/ 05 января 2019

Шаблоны проектирования представляют лучшие практики, используемые опытными разработчиками объектно-ориентированного программного обеспечения. Наивно полагать, что платформа, подобная Android, не применяется. Например, шаблон проектирования при разработке контекста Android может быть при работе с экранами разных размеров. В контексте есть инструкция, основанная на шаблоне разработки стратегии, для работы с большим количеством экранов разных размеров. Я обнаружил, что это самый простой и полезный учебник для шаблонов проектирования с примером использования контекстного класса.

https://www.tutorialspoint.com/design_pattern/index.htm
0 голосов
/ 05 января 2019

По сути, Context - это ссылка , которая содержит глобальную информацию о " Прикладной среде ".

Это абстрактный класс , реализация которого обеспечивается системой Android .

Позволяет получить доступ к ресурсам и классам, относящимся к конкретному приложению, а также к дополнительным вызовам для операций на уровне приложения, таких как запуск, передача и прием и т. Д.

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

Вы можете проверить больше здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...