Java 8引入了接口默认实现的概念?这是否违反了开放封闭原则,因为基于https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html上的示例,您似乎总是可以打开界面来添加新功能?
答案 0 :(得分:0)
可以使用界面中的默认方法编写软件,同时遵守开放式原则,也可以在界面中使用默认方法并违反开放式原则。
开闭原则是一种设计/架构原则,由程序员在设计和编程时遵循该原则。 Java语言无法强制使用。
由于Java语言未强制执行Open Closed原则,因此可以使用JDK 1.0(Java的第一个版本)和仅JDK 1.0编写一组违反或遵守Open-closed原则的类。语言功能集。 在接口或Java的任何最新功能中使用接口默认方法时,也有可能违反或遵守该原则。 遵守开放式封闭原则取决于所写内容和编写方式。 Java只是表达概念所需要的一种语言。
答案 1 :(得分:0)
在面向对象软件构造(Meyer, Bertrand 1988)中引入了开闭原则:
<块引用>“软件实体(类、模块、函数等)应该对扩展开放,对修改关闭”。
在任何时候它都说需要一个显式接口(实际上不是)。而且,它明确表示这也适用于函数,甚至整个模块。
面向对象的代码可能会违反这一原则……或不会,与它所采用的句法结构无关。某些特定结构可能确实“邀请”了 OCP 违规,但如果我们对此进行了细化处理,抽象类将落入同一个桶中。