【问题标题】:Facade patterns and Managers classes外观模式和管理器类
【发布时间】:2012-02-21 08:52:10
【问题描述】:

http://developer.android.com/guide/basics/what-is-android.html 请参阅 Android 架构。

我们能否考虑不同的管理器,例如不同子系统的外观对象。 例如,我们可以将资源管理器视为所有资源子系统的外观对象吗?

或者,班级的经理名称可能有不同的目的?

【问题讨论】:

    标签: java android design-patterns facade


    【解决方案1】:

    我会说这应该根据具体情况进行区分,答案通常是“否”。让我解释一下原因。

    四个门面定义为某个系统的特定入口点,该系统本身没有任何功能,但为子系统提供了一个简单的接口无需删除对该子系统的访问权 .

    现在,让我们看一下,例如,android.content.res.Resources。确实是一个统一的接口,但是我们可以不使用它来获取资源吗?不,这是不可能的:它使用了程序员无法使用的android.content.res.AssetManager 方法。因此Resources 并没有真正简化对其他东西的访问,这个类是资源系统不可分割的一部分。这意味着这个类不能被认为是 门面。

    相反,像android.view.animation.AnimationUtils 这样的类是一个门面。它没有做任何开发人员自己做不到的事情。但是,开发人员可以更轻松地调用此类的方法之一,而不是手动解析 XML 文件和创建动画类。它代表动画子系统的一些默认用途,而无需删除对系统本身的访问。因此,它完全有权被称为门面。

    【讨论】:

    • 管理器类是否有意引入对某些子系统的单点访问?
    • @user1074896 这取决于我们对经理的看法。一些类提供了一个单一的入口点,例如 AlarmManager,但 PreferenceManager 不提供。
    【解决方案2】:

    我认为你的反应是正确的。例如,Android Framework 中有一些XXXManager 类允许您使用指定的系统:偏好系统、搜索系统、应用程序包系统等。

    我们可能会将所有此类视为 Facades。另一方面,它们提供了更具体的对象,我们应该使用这些对象来对系统进行更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-11
      • 2011-03-30
      • 2019-05-10
      • 1970-01-01
      • 2016-10-01
      相关资源
      最近更新 更多