2023-02-22
原文作者:键盘林 原文地址:https://blog.csdn.net/qq_37909508/category_8976362.html

202302222057361561.png

202302222057371882.png

coding

创建一个接口

202302222057381173.png

创建一个Dog类来实现它

202302222057386844.png

创建一个Bird也实现IAnimalAction接口

202302222057393675.png

当前UML类图

202302222057400796.png

我们发现Bird和Dog两个类都实现了一些不属于它们的方法,这种方式造成了数据冗余

因此我们得采用接口隔离原则

创建一个接口IFlyAnimalAction

202302222057408747.png

创建一个接口IEatAnimalAction

202302222057414298.png

创建一个接口ISwimAnimalAction

202302222057422319.png

现在我们可以让Dog类实现它需要的接口就行了

2023022220574285710.png

当前UML类图

2023022220574355911.png

总结:使用接口隔离原则一定要注意接口中的方法不宜太多,也不宜太少。扩展出来的接口也要注意度。

2023022220574428112.png

coding

创建TeamLeader类

2023022220574509513.png

创建Boss类

2023022220574597414.png

main方法 调用

2023022220574694415.png

运行结果

2023022220574770016.png

我们往回看发现Course这个类和Boss并没有什么关系

2023022220574819217.png

查看当前UML类图

我们可以分析发现,Course应该由TeamLeader来创建,因为,Boss类的目的只是查询课程数量

2023022220574942618.png

修改Boss类

2023022220575026819.png

修改TeamLeader类

2023022220575093420.png

我们可以看到当前的UML图

2023022220575177821.png

阅读全文