design-patterns - 我们什么时候需要适配器模式?

标签 design-patterns adapter

我们什么时候需要使用适配器模式?如果可能的话,请给我一个适合该模式的真实示例。

最佳答案

现有接口(interface)

interface Shape {
    public int calculateArea(int r);
}
Shape 接口(interface)的当前实现
class Square implements Shape {
    @Override
    public int calculateArea(int r) {
        return r * r;
    }
}
现在考虑您希望 Circle 类适应我们现有的接口(interface),我们无法修改(由第三方编写)。
class Circle {
    public double calculateCircularArea (int r) {
        return 3.14 * r * r;
    }
}
现在我们已经使 Circle 实现适应我们的 Shape 接口(interface)。所以我们需要一个适配器,因为它们不兼容。
class CircleAdaptor extends Circle implements Shape {
    @Override
    public int calculateArea(int r) {
        return (int) calculateCircularArea(r);
    }
}
CircleAdaptor - 是圆形的适配器;
Circle - 是适应者;
形状 - 是目标界面。
public class AdapterPattern {
    public static void main(String[] args) {
        Shape circle = new CirCleAdaptor();
        System.out.println("Circle Area " + circle.calculateArea(5));
        Shape square = new Square();
        System.out.println("Square Area " + square.calculateArea(5));
    }
}
希望这可以更好地了解何时使用它。
另见 what is Decorator pattern?

关于design-patterns - 我们什么时候需要适配器模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3478225/

相关文章:

design-patterns - 构建器模式与构造函数中的参数数量有关吗?

javascript - 对于构建 HTML/JavaScript Air Apps 是否有任何好的指南、引用资料、设计模式或只是好的建议

ios - 有没有办法检测 USB 以太网适配器是否以编程方式连接到 iPhone/iPad?

java - 适配器类出现问题,没有崩溃,但页面卡住并重新加载

java - 从 AlertDialog 输入向 RecyclerView 添加项目

android - 无法让自定义适配器在 fragment 中工作

node.js - 将结果返回给外部函数

java - 单例类识别

php - 类只包含静态函数,适用哪种设计模式?

Android:如何从 XML 文件中的数据创建 CursorAdapter