首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于不明确的API,是否存在不公开需求的命名反模式?

对于不明确的API,是否存在不公开需求的命名反模式?
EN

Software Engineering用户
提问于 2014-04-09 13:20:56
回答 1查看 153关注 0票数 -2

在我正在评估的源代码(扎贾尔)中,有一些java代码可以这样使用:

代码语言:javascript
复制
JarJarTask fixture = new JarJarTask();
fixture.addConfiguredRule(new Rule());
fixture.execute();

它将引发一个异常,如:

代码语言:javascript
复制
java.lang.IllegalArgumentException:
The <rule> element requires both "pattern" and "result" attributes.

现在,在我看来,API显然不是最优的--如果规则元素需要这些属性,它应该在构造函数中请求它们(或者提供一个Builder或类似的需要它们的类)。但我无法找到编码约定或java编程建议来同意我的观点。

是否有一些具体的名称,我可以用来查找这个研究,编程文学,风格指南?我可以用哪些术语来讨论这个问题呢?

当然,这是用一些术语在某个地方讨论过的,但我似乎找不到任何东西。

我确实发现了关于构造器注入的讨论,如Kent在Smalltalk最佳实践模式和马丁·福勒中所提出的,根据的说法,这使得它“立即明确了类在实例化时需要什么,而且如果不传递字段的对象,就不可能实例化类”。因此,这是一个起点,至少可以找到一些讨论。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-04-09 16:21:27

这里您要做的最好的事情就是说明API不是什么,或者它没有提供什么。构造函数与设置器注入是一个附带的过程,但原则是合理的:编写类,以便从构造函数参数中清楚地知道创建一个完整的函数对象所需的内容。

如果您遵循组织中的最佳实践,只需说明该类未能遵循在构造函数中描述其实例化要求的实践。

相关

按合同设计

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

https://softwareengineering.stackexchange.com/questions/235393

复制
相关文章

相似问题

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