Фасадные узоры и классы менеджеров - PullRequest
3 голосов
/ 21 февраля 2012

http://developer.android.com/guide/basics/what-is-android.html См. Архитектура Android.

Можем ли мы рассматривать разных менеджеров, таких как объекты фасада для разных подсистем.Например, можем ли мы рассматривать Resource Manager как фасадный объект для всех подсистем ресурсов?

Или, может быть, имена менеджеров для классов имеют разные цели?

Ответы [ 2 ]

4 голосов
/ 21 февраля 2012

Я бы сказал, что это следует различать в каждом конкретном случае, и ответ часто будет "нет". Позвольте мне объяснить, почему.

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

Теперь давайте рассмотрим, например, android.content.res.Resources . Это действительно унифицированный интерфейс, но можем ли мы получить ресурсы, не используя его? Нет, это невозможно: используются методы android.content.res.AssetManager, недоступные программисту. Поэтому Resources на самом деле не упрощает доступ к чему-то другому, этот класс является неотъемлемой частью системы ресурсов. Это означает, что этот класс не может считаться фасад.

Класс, подобный android.view.animation.AnimationUtils , напротив, является фасадом. Он не делает ничего, что разработчик не мог сделать сам. Однако вместо анализа файлов XML и создания классов анимации вручную разработчику проще вызвать один из методов этого класса. Он представляет некоторые используемые по умолчанию подсистемы анимации без удаления доступа к самой системе. Поэтому он имеет полное право называться фасадом.

2 голосов
/ 21 февраля 2012

Вы думаете, в правильном направлении, я думаю. Например, в Android Framework есть несколько классов XXXManager, которые позволяют работать с указанной системой: системой предпочтений, поисковой системой, системой пакетов приложений и т. Д.

И мы можем воспринимать весь этот класс как Фасады. С другой стороны, они предоставляют более конкретные объекты, которые мы должны использовать для внесения изменений в систему.

...