【问题标题】:What is an adapter class?什么是适配器类?
【发布时间】:2012-04-16 08:15:50
【问题描述】:

我搜索并调查了,但我仍然需要澄清:适配器类和控制器类是否相似?如果不是,它们有何不同?

请解释一下。

【问题讨论】:

    标签: java android adapter


    【解决方案1】:

    适配器是一种提供接口或抽象类的默认(通常为空)实现的模式。例如MouseAdapter 提供了MouseListener 接口的空实现。它很有用,因为通常您并没有真正使用接口声明的所有方法,因此直接实现接口非常冗长。

    Controller 是 MVC - Model-View-Controller 模式的一部分。与适配器没有直接关系。

    【讨论】:

    • 试图查找所有Adapter Classes 的列表,但找不到,我在哪里可以找到它?
    • 没有这样的列表。正如我在回答适配器中所写的那样,适配器是一种模式,因此每个人都可以使用他需要的任何接口来实现它。如果您想知道实现特定接口并在您的项目中可用的适配器列表,请使用 IDE 层次结构(例如 IntelliJ 中的 Ctrl-H)
    • 这样的列表存在,您不必创建自己的适配器类。您所要做的就是谷歌desired_listener +“适配器”,它就会出现。示例:docs.oracle.com/javase/7/docs/api/java/awt/event/…
    【解决方案2】:

    适配器的工作主要是使某些对象在需要不同接口的情况下工作。

    控制器(在 MVC 意义上)的相似之处在于它是模型和视图类之间的中介,但不同之处在于它通常包含更多关于程序应该如何工作的知识。控制器不仅仅是将一个接口适配到另一个接口。

    假设您有一个具有 setColor(red, green, blue) 方法的 Color 类。您还有一些需要 setColor(hue, saturation, value) 方法的代码。您可以创建一个适配器类来包装您的 Color 类并根据您的 Color 类提供的方法实现预期的方法。

    【讨论】:

    【解决方案3】:

    适配器类

    • 适配器类是一个简单的 java 类,它实现了一个只有 EMPTY 实现的接口。
    • 如果我们扩展 Adapter 类,我们不会实现接口,而是只为 require 方法提供实现

    ex --- 如果我们扩展 GenericServlet(AC) 而不是实现 Servlet(I),那么我们提供 Service() 方法的实现,我们不需要为剩余的方法提供实现..

    通用类充当 Servlet(I) 的 ADAPTER 类。

    【讨论】:

      【解决方案4】:

      适配器类提供事件侦听器接口中所有方法的默认实现。当您只想处理由特定事件侦听器接口处理的少数事件时,适配器类非常有用。您可以通过扩展其中一个适配器类来定义一个新类,并仅实现与您相关的那些事件。

      【讨论】:

        【解决方案5】:

        适配器类提供事件侦听器类中所有方法的默认实现,方法在该类中定义,主体为空; 我们可以通过继承该类来仅覆盖该类的必需方法。 适配器类减少编码行数。

        【讨论】:

          【解决方案6】:

          每个侦听器接口都有 1 个或多个方法。包含超过 1 个方法的接口具有适配器类...每个适配器类都包含该接口的所有方法。 如果我们在一个类中编写一个接口的方法,那么你应该编写所有的方法......监听器的一些接口包含超过6个方法......所以为了减轻程序员的负担,他们发明了这些适配器类.so 我们将这些适配器类扩展到我们的类并编写我们的方法,因此它覆盖了适配器方法....所以我们失去了编写所有方法的风险

          【讨论】:

            【解决方案7】:

            android 中的适配器对象为(示例)列表提供视图元素 - 因此它们显然属于 MVC 范例的视图部分

            【讨论】:

              【解决方案8】:

              适配器类的优点:

              • 如果一个类扩展了一个适配器类,我们可以重写一些需要的方法;
              • 它可以在某些情况下简化事件处理程序的创建;
              • 它提供了 EventListener 方法中所有方法的空实现。

              【讨论】:

              • 您能否举例说明适配器类可以简化事件处理程序的创建?谢谢。
              【解决方案9】:

              通过为本质上相同的方法赋予不同的名称(即 push(Stack) 而不是 add(ArrayList))来适应另一个类的方法的类称为适配器类

              【讨论】:

                猜你喜欢
                • 2011-04-21
                • 2012-03-03
                • 2017-12-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-01-16
                • 1970-01-01
                相关资源
                最近更新 更多