我搜索并调查了,但我仍然需要澄清:适配器类和控制器类是否相似?如果不是,它们有什么不同?
请解释。
适配器是一种提供接口或抽象类的默认(通常为空)实现的模式。例如MouseAdapter
提供MouseListener
接口的空实现。它很有用,因为通常您并没有真正使用接口声明的所有方法,因此直接实现接口非常冗长。
控制器是 MVC - 模型-视图-控制器模式的一部分。与适配器没有直接关系。
适配器的工作主要是使某些对象在需要不同接口的情况下工作。
控制器(在 MVC 意义上)的相似之处在于它是模型和视图类之间的中介,但不同之处在于它通常包含更多关于程序应该如何工作的知识。控制器不仅仅是使一个接口适应另一个接口。
假设您有一个具有setColor(red, green, blue)
方法的 Color 类。您还有一些需要setColor(hue, saturation, value)
方法的代码。您可以创建一个适配器类来包装您的 Color 类并根据您的 Color 类提供的方法实现预期的方法。
ex---如果我们扩展GenericServlet(AC)而不是实现Servlet(I),那么我们为Service()方法提供实现,我们不需要为剩余的方法提供实现..
泛型类 充当 Servlet(I) 的 ADAPTER 类。
适配器类提供事件侦听器接口中所有方法的默认实现。当您只想处理由特定事件侦听器接口处理的少数事件时,适配器类非常有用。您可以通过扩展其中一个适配器类来定义一个新类,并仅实现与您相关的那些事件。
适配器类提供事件侦听器类中所有方法的默认实现,方法在该类中定义,主体为空;我们可以通过继承该类来仅覆盖该类的必需方法。适配器类减少了编码行数。
每个侦听器接口都有 1 个或多个方法。包含超过 1 个方法的接口具有适配器类...每个适配器类都包含该接口的所有方法。如果我们在一个类中编写一个接口的方法,那么你应该编写所有的方法......监听器的一些接口包含超过6个方法......所以为了减轻程序员的负担,他们发明了这些适配器类.所以我们将这些适配器类扩展到我们的类并编写我们的方法,因此它覆盖了适配器方法....所以我们失去了编写所有方法的风险
Advantages of an Adapter Class:
android 中的适配器对象为(示例)列表提供视图元素 - 因此它们显然属于 MVC 范例的视图部分
通过为本质上相同的方法(即 push(Stack) 而不是 add(ArrayList))赋予不同名称来适应另一个类的方法的类称为适配器类