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 data JPA只查询部分字段问题及解决

    Spring data JPA只查询部分字段问题及解决

    这篇文章主要介绍了Spring data JPA只查询部分字段问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • java语言注解基础概念详解

    java语言注解基础概念详解

    这篇文章主要介绍了java语言注解基础概念详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Java中字符编码格式详解

    Java中字符编码格式详解

    在java应用软件中,会有多处涉及到字符集编码,有些地方需要进行正确的设置,有些地方需要进行一定程度的处理。本文主要给大家讲解java中字符的编码格式等相关问题
    2016-03-03
  • JavaWeb pageContext对象原理解析

    JavaWeb pageContext对象原理解析

    这篇文章主要介绍了JavaWeb pageContext对象原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Spring Boot Admin 监控指标接入Grafana可视化的实例详解

    Spring Boot Admin 监控指标接入Grafana可视化的实例详解

    Spring Boot Admin2 自带有部分监控图表,如图,有线程、内存Heap和内存Non Heap,这篇文章主要介绍了Spring Boot Admin 监控指标接入Grafana可视化,需要的朋友可以参考下
    2022-11-11
  • Java语言的11大特点(Java初学者必知)

    Java语言的11大特点(Java初学者必知)

    Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的静态语言。这篇文章主要介绍了Java语言的11大特点,需要的朋友可以参考下
    2020-07-07
  • springboot配置mybatis和事务管理方式

    springboot配置mybatis和事务管理方式

    这篇文章主要介绍了springboot配置mybatis和事务管理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • java多线程中断代码详解

    java多线程中断代码详解

    这篇文章主要介绍了java多线程中断代码详解,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • 浅谈Java线程间通信之wait/notify

    浅谈Java线程间通信之wait/notify

    下面小编就为大家带来一篇浅谈Java线程间通信之wait/notify。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • Maven高级的聚合和继承的实现

    Maven高级的聚合和继承的实现

    在软件开发中,随着项目规模的扩大,单个模块的开发方式逐渐转变为多模块开发,这种方式带来了项目管理上的挑战,其中最常见的问题是模块间的依赖管理和版本控制问题,本文就来介绍一下
    2024-10-10

最新评论