代码之家  ›  专栏  ›  技术社区  ›  Pops Atula

为什么有些api主要提供接口而不是类?

  •  2
  • Pops Atula  · 技术社区  · 15 年前

    一些javaapi提供了大量的接口和很少的类。例如, the Stellent/Oracle UCM API 它由大约80%的接口/20%的类组成,其中许多类只是例外。

    与类相比,更喜欢接口的技术原因是什么?这只是为了尽量减少耦合吗?改进封装/信息隐藏?还有别的吗?

    5 回复  |  直到 15 年前
        1
  •  9
  •   Eric Petroelje    15 年前

    它将最大限度地提高它们在幕后更改底层类的灵活性。

        2
  •  3
  •   OscarRyz    15 年前

    它们是为第三方提供实现而设计的。

    JDBC (22个接口7个混凝土等级)

    我们的想法是提供一个。。好。。程序员接口(API),因此客户端(使用代码的客户端)可以自由地依赖这些API提供的特性,而不必担心底层的实现。

    另一个原因是,可能有一个现有的提供者(即FutureSQL)仍然不存在,但它可能实现了这个接口,您就可以使用它了。

        3
  •  0
  •   Athens Holloway    15 年前

    很可能,框架/API是用 Dependency Injection

        4
  •  0
  •   Puppy    15 年前

    如果每个类都实现了大量的接口,那么接口的数量相对于类的数量并不是很重要。

        5
  •  0
  •   Ayusman    15 年前

    最好的例子之一是java.sql包。

    原因是: 当设计者清楚地知道需要做什么以及整个应用程序(尚未设计)的结构时,他们通过一个API作为一堆接口来提供这个想法。

    例如: 当SUN(现在的oracle:-()发布JDBC的API时,整个SQL包(大部分)只是定义了互操作性的接口;但是DB/RDBMS的实际供应商知道该怎么做,以便它们达到API中预期的结果。

    然而,我们的应用程序和数据库的互操作没有任何问题[大多数时候;-)]

    这是一个很长的答案,但希望这有帮助。 谢谢,