java面向对象设计原则之接口隔离原则示例详解

 更新时间:2021年10月14日 09:50:30   作者:guoyp2126  
这篇文章主要为大家介绍了java面向对象设计原则之接口隔离原则的示例详解,有需要的朋友可以借鉴参考下希望能够有所帮助,祝大家多多进步早日升职加薪

概念

小接口原则,即每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。如下图所示定义了一个接口,包含了5个方法,实现类A用到了3个方法、实现类B用到了3个方法,类图如下:

在这里插入图片描述

类A没有方法4、方法5,却要实现它;类B没有方法2、方法3,但还是要实现这两个方法,不符合接口隔离原则。改造为将其拆分为三个接口,实现方式改为下图所示,符合接口隔离原则:

在这里插入图片描述

实现

面向对象机制中一个类可以实现多个接口,通过多重继承分离,通过接口多继承(实现)来实现客户的需求,代码更加清晰易维护。如网上商城系统中,封装一个用户类,完成用户的消费记录、浏览记录等相应的功能,如果是会员还要完成记录会员积分、提现、折扣、会员级别变动等功能;实现精准化广告投放时需要根据用户特征计算用户的消费偏好,则可以做以下设计完成遵循接口隔离原则。

在这里插入图片描述

这样设计,普通消费者无需实现会员接口,符合接口隔离原则;

同时在做精准推送时,只需要通过“精准推送”接口定义对象变量;做会员相关操作时,只需使用会员接口定义对象变量,而不是所有的内容通过消费用户定义相关对象变量,代码的可读性大大提高。

拓展

1.接口分离原则也是确保“开-闭”原则的一个重要手段;模块相对独立,通信尽可能少,这样当一个模块修改时,对别的模块的影响很小。
2. 代码清晰易懂,里氏替换和依赖倒置原则更易使用。
3. 语义更加清晰,准确。(如:家里电路需要处理,我们会在劳动力市场找电工(小接口),而不是说找个工人(大接口),这样语义更加清晰,准确)

以上就是java面向对象设计原则之接口隔离原则示例详解的详细内容,更多关于java面向对象设计原则的资料请关注脚本之家其它相关文章!

相关文章

  • Spring事件监听机制之@EventListener实现方式详解

    Spring事件监听机制之@EventListener实现方式详解

    这篇文章主要介绍了Spring事件监听机制之@EventListener实现方式详解,ApplicationContext的refresh方法还是初始化了SimpleApplicationEventMulticaster,发送事件式还是先获取ResolvableType类型,再获取发送监听列表,需要的朋友可以参考下
    2023-12-12
  • 使用GSON库转换Java对象为JSON对象的进阶实例详解

    使用GSON库转换Java对象为JSON对象的进阶实例详解

    这篇文章主要介绍了使用GSON库转换Java对象为JSON对象的进阶实例详解,包括注册TypeAdapter及处理Enum类型等实际运用中可能遇到的一些复杂问题,需要的朋友可以参考下
    2016-06-06
  • Java经典排序算法之冒泡排序代码实例

    Java经典排序算法之冒泡排序代码实例

    这篇文章主要介绍了Java经典排序算法之冒泡排序代码实例,相邻两元素进行比较,如过左侧元素大于右侧元素,则进行交换,每完成一次循环就将最大元素排在最后,下一次循环是将其它的数进行类似操作,需要的朋友可以参考下
    2023-11-11
  • mybatis教程之查询缓存(一级缓存二级缓存和整合ehcache)

    mybatis教程之查询缓存(一级缓存二级缓存和整合ehcache)

    这篇文章主要介绍了mybatis教程之查询缓存(一级缓存二级缓存和整合ehcache),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • SpringBoot+BootStrap多文件上传到本地实例

    SpringBoot+BootStrap多文件上传到本地实例

    这篇文章主要介绍了SpringBoot+BootStrap多文件上传到本地实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • java中如何对arrayList按数字大小逆序排序

    java中如何对arrayList按数字大小逆序排序

    这篇文章主要介绍了java中如何对arrayList按数字大小逆序排序问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Java StringTokenizer分隔符拆分字符串

    Java StringTokenizer分隔符拆分字符串

    Java中的StringTokenizer类用于将一个字符串分解成标记,本文主要介绍了Java StringTokenizer分隔符拆分字符串,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • 详解Java字符型常量和字符串常量的区别

    详解Java字符型常量和字符串常量的区别

    Java 中的字符型常量和字符串常量是两种不同的数据类型,本文将给大家详细介绍一下Java字符型常量和字符串常量的区别,文中通过代码讲解的非常详细,需要的朋友可以参考下
    2023-10-10
  • SpringMVC+MyBatis分页(最新)

    SpringMVC+MyBatis分页(最新)

    本篇文章主要介绍了SpringMVC+MyBatis分页,具有一定的参考价值,有兴趣的可以了解一下。
    2016-12-12
  • Eclipse快捷键使用小结

    Eclipse快捷键使用小结

    Eclipse是用java的同行必不可少的工具,我总结了一下它的快捷键,太常用的ctrl+单击、ctrl+shift+F、Ctrl+1等我就不细说了,主要是方便查看。下边小编就详细的为大家介绍一下
    2013-07-07

最新评论