开放封闭原则与默认实施

时间:2017-04-18 00:30:56

标签: java-8 default-method open-closed-principle default-implementation

Java 8引入了接口默认实现的概念?这是否违反了开放封闭原则,因为基于https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html上的示例,您似乎总是可以打开界面来添加新功能?

2 个答案:

答案 0 :(得分:0)

可以使用界面中的默认方法编写软件,同时遵守开放式原则,也可以在界面中使用默认方法并违反开放式原则。

开闭原则是一种设计/架构原则,由程序员在设计和编程时遵循该原则。 Java语言无法强制使用。

由于Java语言未强制执行Open Closed原则,因此可以使用JDK 1.0(Java的第一个版本)和仅JDK 1.0编写一组违反或遵守Open-closed原则的类。语言功能集。 在接口或Java的任何最新功能中使用接口默认方法时,也有可能违反或遵守该原则。 遵守开放式封闭原则取决于所写内容和编写方式。 Java只是表达概念所需要的一种语言。

答案 1 :(得分:0)

面向对象软件构造(Meyer, Bertrand 1988)中引入了开闭原则:

<块引用>

“软件实体(类、模块、函数等)应该对扩展开放,对修改关闭”。

在任何时候它都说需要一个显式接口(实际上不是)。而且,它明确表示这也适用于函数,甚至整个模块。

面向对象的代码可能会违反这一原则……或不会,与它所采用的句法结构无关。某些特定结构可能确实“邀请”了 OCP 违规,但如果我们对此进行了细化处理,抽象类将落入同一个桶中。