欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

朝着理想坚实迈进_坚实原则:接口隔离原则

发布时间:2023/12/3 编程问答 75 豆豆
生活随笔 收集整理的这篇文章主要介绍了 朝着理想坚实迈进_坚实原则:接口隔离原则 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

朝着理想坚实迈进

以前,我们研究了liskov替代原理。 下一个原则是接口隔离 。 接口隔离原则(ISP)指出,不应强迫任何客户端依赖其不使用的方法。

想象一下,在我们的代码库中有很多方法的接口,尽管只有一部分方法被实现,但我们的许多类都实现了该接口。

在我们的案例中,运动员界面是一个具有运动员某些动作的界面。

package com.gkatzioura.solid.segragation;public interface Athlete {void compete();void swim();void highJump();void longJump();}

我们添加了比赛方法,还添加了一些额外的方法,例如游泳highJump和longJump。
假设JohnDoe是一名游泳运动员。 通过实现Athlete接口,我们必须实现JohnDoe永远不会使用的诸如highJump和longJump之类的方法。

package com.gkatzioura.solid.segragation;public class JohnDoe implements Athlete {@Override public void compete() {System.out.println("John Doe started competing");}@Override public void swim() {System.out.println("John Doe started swimming");}@Override public void highJump() {}@Override public void longJump() {} }

对于可能是田径运动员跳高和跳远比赛的另一位运动员,也会出现相同的问题。
我们将遵循界面隔离原则,并重构原始界面,并创建另外两个界面,一个用于跳跃运动员,另一个用于游泳运动员。

package com.gkatzioura.solid.segragation;public interface SwimmingAthlete extends Athlete {void swim();}package com.gkatzioura.solid.segragation;public interface JumpingAthlete extends Athlete {void highJump();void longJump();}

因此,John Doe不必执行他无法执行的动作。

package com.gkatzioura.solid.segragation;public class JohnDoe implements SwimmingAthlete {@Overridepublic void compete() {System.out.println("John Doe started competing");}@Overridepublic void swim() {System.out.println("John Doe started swimming");}}

您可以在github上找到源代码。 最后一个原则是依赖倒置原则。

另外,我还编写了备忘单,其中包含有关扎实原则的摘要。
在链接中注册以接收它。

翻译自: https://www.javacodegeeks.com/2018/02/solid-principles-interface-segregation-principle.html

朝着理想坚实迈进

总结

以上是生活随笔为你收集整理的朝着理想坚实迈进_坚实原则:接口隔离原则的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。