java的api是什么语言_java – 为OO语言编写API到底意味着什么?

我被要求为我选择的高级OO语言编写API(我将使用Java).当然,API需要执行特定的功能,但它们是我知道我可以完成的非常基本的事情.

我熟悉Web应用程序的API概念,这很简单,但是为OO语言编写API究竟意味着什么?在Java的情况下,这是否意味着编写一个可以导入的包并通过类/函数提供所需的功能,所以我会写a)包和b)一个单独的模块来测试它? (为了澄清,除了“编写API”和“它需要做X,Y和Z”之外,我没有提供任何信息.进一步澄清:我提到了Web应用程序API概念,只是为了表明我知道什么是API是.这不是任何类型的Web API.)

解决方法:

根据具体情况和您的要求,有不同的定义.

有些人将模块公开的所有公共类型称为API.通过这个非常广泛的定义,几乎每个库或包都有一个API.我认为这是一个非常普遍的定义,但不是每个人都同意它.

在更抽象的层面上,API是一种定义某些功能的合同或规范.在这种情况下,API更像是模块或服务的定义良好的接口,用于将公共可用功能与其内部实现分开.这种API的一个很好的例子是Java EE API.

实际上,在Java中,API通常是一个接口(或者有时是一组接口).功能由接口方法和文档定义. API本身不需要任何功能(或者至多只有一些基本的默认类).

由另一个类来实现接口并提供已定义功能的实现.这些实现不应违反合同.

如果一个类想要使用API​​,它只访问接口而不是实现类.这是“接口程序,而不是实现”的原则.在我看来,这是API最重要的方面,也是API与常规接口的区别.它使API可重用,并使内部实现能够在不破坏API的情况下进行更改.

当然,如果类只使用API​​,那么仍然需要某种机制来获取实现API的类的实例.通常它是某种工厂方法或依赖注入.

包装通常取决于API的用法.由第一个定义定义的API通常包含在其库的jar中,因为单独导入它们没有意义.另一种API可以有多个实现,应该单独打包.

标签:java,oop

来源: https://codeday.me/bug/20190519/1138022.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值