java 8引入了接口的默认实现概念?这是否违反了开放的封闭原则,因为基于https://docs.oracle.com/javase/tutorial/java/java/iandi/defaultmethods.html上的示例,您似乎总是可以打开界面来添加新功能?
可以使用接口中的默认方法编写,同时符合开放式原理或在接口中使用默认方法并违反开放式原理。p>开放式原理是一种设计/架构原则,由程序员在设计和编程时遵循该原理。Java语言无法强制执行其用法。
由于Java语言未执行开放式封闭原则,因此可以使用JDK 1.0(JAVA的第一个版本(和JDK 1.0编写一组违反或遵守开放式原理的类语言功能集。在使用接口默认方法或Java的任何最新功能中,也可以违反或遵守原理。遵守开放式原则取决于书面的内容和写作方式。Java只是您需要在。
在面向对象的软件构建(Meyer,Bertrand 1988(中引入了开放式原则:
"软件实体(类,模块,功能等(应打开以进行扩展,但要关闭以进行修改。
在任何时候都说需要一个显式接口(并且不是(。此外,它清楚地表明,这也适用于函数,甚至整个模块。
面向对象的代码可以违反这一原则...是否与其采用的句法结构无关。确实,某些特定的构造"邀请"可能是事实。OCP违规,但是如果我们要穿线这个精美的抽象类,将落入同一水桶中。