首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规格究竟是什么?

规格究竟是什么?
EN

Stack Overflow用户
提问于 2015-12-24 18:26:44
回答 3查看 15.4K关注 0票数 31

我读或听过这样的句子:

Java持久性API (JPA)是一种Java应用程序编程接口规范.

JavaServer Faces (JSF)是一种Java规范.

但是我不确定我是否明白规格到底是什么。

假设我创建了一个新的规范JMA,Java,这是一个Java规范。

我将我的规范定义为:

JMA必须提供一个添加两个整数的方法吗?

或者,我是否必须创建这样的文档:

JMA必须提供以下方法: int jmaAdd(int,int )?

或者,我需要创建接口并不信任源代码吗?

代码语言:javascript
复制
public interface JMA{
    int jmaAdd(int x,int y);
}

还是我必须编译接口并将其发布为jar?

另外,规范可以包含抽象类或类吗?或者它必须只由接口组成?

什么使一个规范,一个规范?

EN

回答 3

Stack Overflow用户

发布于 2015-12-24 18:32:14

我认为这里的关键思想是“规范不包括实现”。

当Sun是Java的管理者时,他们会为Java和JPA这样的特性编写规范,让其他供应商可以随意实现。Sun通常会有自己的实现来与之竞争,但他们的目标是销售硬件。鼓励其他供应商提供相互竞争的实现只会进一步促进这一目标。

Sun的规范不会附带代码或JAR;它们是对代码工作方式的散文缛节描述。

票数 16
EN

Stack Overflow用户

发布于 2015-12-24 18:31:02

在Java-land中,这些规范是作为Java规范请求(JSR)启动的。

在此定义:

https://jcp.org/en/jsr/overview

一旦被接受,这些都是规格。

票数 5
EN

Stack Overflow用户

发布于 2015-12-24 18:43:42

如果一个人做了一个谷歌搜索,你会得到:

spec·i·fi·ca·tionˌspe fəˈkāSH(ə)n/名词名词:规范;复数名词:规格 精确地描述或识别某物的行为,或陈述一项精确要求的行为。 例句:“给出招聘广告的详细说明” (...)

因此,这意味着您描述了某事应该如何工作,而不是为了让它工作而必须做什么(这就是实现)。

例如,有正式的语言来指定方法的前后条件。然后可以使用工具(半)自动验证这些条件的子集。

其他正式语言使您能够进行自动约束编程(例如,我的解决多sudoku拼图的规范)。

另一个例子是CSS:你指定你的网页应该是什么样的,关于如何使按钮变成绿色的说明不是CSS的一部分。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34456615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档