Java scjp关于设计的问题

Java scjp关于设计的问题,java,scjp,oop,Java,Scjp,Oop,一个程序员团队正在为一个新的实用程序类审查一个提议的API。过了一会儿 通过讨论,他们认识到可以减少API中的方法数量,而无需 失去任何功能。如果他们实现了新的设计,将采用哪两种面向对象原则 他们在促销吗 谁能告诉我答案是什么 我想说的是,首先,更强的封装性。假设API中不再存在的某个方法(即,它已被私有化或删除)提供了更多的“低级”功能,这些功能仍然可以通过剩余的“高级”方法访问。我想你应该这么想。在这种情况下,您改进了封装,因为您可以自由更改方法的参数数量和类型、方法名称及其返回类型,甚至可

一个程序员团队正在为一个新的实用程序类审查一个提议的API。过了一会儿 通过讨论,他们认识到可以减少API中的方法数量,而无需 失去任何功能。如果他们实现了新的设计,将采用哪两种面向对象原则 他们在促销吗


谁能告诉我答案是什么

我想说的是,首先,更强的封装性。假设API中不再存在的某个方法(即,它已被私有化或删除)提供了更多的“低级”功能,这些功能仍然可以通过剩余的“高级”方法访问。我想你应该这么想。在这种情况下,您改进了封装,因为您可以自由更改方法的参数数量和类型、方法名称及其返回类型,甚至可以完全删除该方法并将其功能折叠到调用方中,而不会影响API的客户端

哦,对不起,哪两个?好的,它还将促进更松散的耦合,因为类与其客户端之间的耦合点更少,因此以不同方式打破事物的机会也更少。

我的答案是

耦合较松更高的内聚力

如果下一个问题是为什么?那么我建议你仔细阅读这篇文章:


我不认为这是内聚,因为可以删除这些方法而不丢失任何功能。这表示类的整体功能没有改变。@Robin Green,如果同一方法用于多个目的,则很难在不影响功能的情况下删除该方法。你可以在给出的链接中查看有关凝聚力的详细信息。我同意你的评论,但这与问题无关!您首先对以前的设计做出了一个可疑的假设(即它是内聚的),但这并不重要,因为问题不是问以前的设计,而是问新的设计@我不明白你的评论。这是家庭作业吗?java中的数学类是一个实用API。看看他们的方法。@G_H SCJP代表Sun认证的Java程序员(我已经通过了考试)。所以这一定是一个考试样题。@Suresh你看了整个问题了吗?我看不出数学课有什么关系。
A. Looser coupling
B. Tighter coupling
C. Lower cohesion
D. Higher cohesion
E. Weaker encapsulation
F. Stronger encapsulation