广告
返回顶部
首页 > 资讯 > 后端开发 > Python >java面向对象设计原则之单一职责与依赖倒置原则详解
  • 761
分享到

java面向对象设计原则之单一职责与依赖倒置原则详解

2024-04-02 19:04:59 761人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录单一职责概念 实现 拓展 依赖倒置原则概念 示例 拓展 单一职责概念 不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。交杂不清的职责将使

单一职责概念

不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。交杂不清的职责将使得代码牵一发而动全身,导致代码混涩难懂,不易修改、难以扩展和复用。如:以前开发C/S程序中的胖客户端程序,就是将人机交互逻辑、业务加工处理逻辑和数据库操作逻辑混合在一起。

实现

单一职责原则是进行类的划分和封装的基本原则,进行类的具体抽象。尽量做到,类的功能单一和清晰化。

1.根据机能划分,使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间的松耦合。
2.当前开发框架一般为分层框架,在分层框架中,已经明确给出了各层的职责,对于业务简单的小型系统,个人认为类的划分按照以下步骤即可。

  • 前端页面:职责主要处理用户操作逻辑(包括有效性验证、样式),将公用的控件、组件进行独立封装,封装的组件不进行后台数据的访问。功能模块(独立页面)为单位完成各种组件控件的组装和数据的提取。
  • 后端controller层:职责为完成对前端展示数据的格式转换及提交操作信息的接收;小型信息系统一般以前端独立页面(功能模块)为单位封装controller,一个controller完成相应功能模块所有的信息功能。
  • 后端services层:职责完成业务逻辑及数据的加工;与controller层封装类对应,对外接口满足controller的需求,还需对数据的加工处理、业务规则进行抽象,进一步进行划分相关业务类,后端services类似设计模式中门面模式,将controller和各种业务逻辑及数据库逻辑进行隔离,仅提供和controller之间的交互。一般小型简单系统仅使用后端services类即可完成。
  • dao层:职责完成数据持久化问题;dao层类分两种,一种为需要进行增删改查操作的表创建一个dao层类(接口);另一种是完成关联查询、存储过程的按照功能划分独立的类(接口)
  • 实体层:职责则是数据的载体功能;需要完成增删改查表创建独立实体;对于关联查询创建独立的数据实体。

拓展

单一职责原则是写代码最容易违反的一个原则,违反此原则代码立即转换成all in one;
虽然很多框架明确规定各层职责,但程序员经常将代码写到一处;
虽然使用面向对象语言,还是面向过程调用

依赖倒置原则概念

依赖倒置原则要求依赖抽象,不要依赖具体;抽象的稳定性决定了系统的稳定性,因为抽象是不变的,依赖于抽象是面向对象设计的精髓。

示例

参考:要依赖于抽象,不要依赖于具体

拓展

控制翻转(ioc):里氏替换原则解决了子类可以替换父类的问题,但是子类在什么时候创建,由谁创建就是依赖倒置原则要解决的问题。对象使用前,必须创建具体的对象,如A类中调用了B类的方法,则在A类里面需要创建B的实例对象,则A依赖于B。现在让A依赖于B的父类(接口),A不创建B实例,而是把创建实例的权限交给容器,由容器创建实例给A,容器给那个实例,A用那个实例,A控制权丢失。所谓的容器就是一段代码,如:工厂类、spring容器等。

以上就是java面向对象设计原则之单一职责与依赖倒置原则详解的详细内容,更多关于java面向对象设原则的资料请关注编程网其它相关文章!

--结束END--

本文标题: java面向对象设计原则之单一职责与依赖倒置原则详解

本文链接: https://www.lsjlt.com/news/154423.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java面向对象设计原则之单一职责与依赖倒置原则详解
    目录单一职责概念 实现 拓展 依赖倒置原则概念 示例 拓展 单一职责概念 不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。交杂不清的职责将使...
    99+
    2022-11-12
  • C#面向对象设计原则之单一职责原则
    单一职责原则(SRP) 定义:系统中的每一个类都应该只有一个职责。 好处:高内聚、低耦合。 解释说明: 单一职责也就是说我们应该让一个类或一个对象只做一件事情,每个类所要关注的就是自...
    99+
    2022-11-13
  • python面向对象编程设计原则之单一职责原则详解
    目录一,封装(一)什么是封装(二)封装与访问(三)私有化与访问控制1,属性与方法的私有化2,变量名压缩3,方法重载(四)属性引用:getter、setter 与 property二,...
    99+
    2022-11-13
  • Java设计模式七大原则之单一职责原则详解
    目录定义案例需求方案一方案二对比分析总结如何遵守单一职责原则定义 单一职责原则(Single Responsibility Principle, SRP),有且仅有一个原因引起类的变...
    99+
    2022-11-13
  • Java设计模式七大原则之依赖倒置原则详解
    目录定义案例需求方案一方案二对比分析总结定义 依赖倒转原则,又称依赖倒置原则(Dependence Inversion Principle),又称DIP原则,即:上层模块不应该依赖底...
    99+
    2022-11-13
  • Java设计模式之单一职责原则精解
    1.什么是单一职责原则? 首先我们可以对某个类来说,即一个类应该只负责一项职责。如类A负责两个不同职责: 职责1,职责2。当职责1需求变更而改变A时,可能造成职责2执行错误,所以需要...
    99+
    2022-11-13
  • Java设计模式中单一职责原则详解
    目录前言一、介绍二、代码演示前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!也许一个人独行,可以走的很快,但是一群人结伴而行,才...
    99+
    2023-05-20
    Java 设计模式 Java 单一职责原则
  • java面向对象设计原则之合成复用原则示例详解
    目录概念示例拓展概念 尽量使用合成/聚合,而不是使用继承实现复用。所谓的合成/聚合是指一个对象里持有另外一个类的对象,通过调用这些对象的方法得到复用已有功能的目的。如:报文解译程序中...
    99+
    2022-11-12
  • java面向对象设计原则之接口隔离原则示例详解
    目录概念实现拓展概念 小接口原则,即每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。如下图所示定义了一个接口,包含了5个方法,实现类A用到了3个方法、实现类B用...
    99+
    2022-11-12
  • java面向对象设计原则之里氏替换原则示例详解
    目录概念实现拓展概念 里氏替换原则是任何基类出现的地方,子类一定可以替换它;是建立在基于抽象、多态、继承的基础复用的基石,该原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机...
    99+
    2022-11-12
  • java面向对象设计原则之开闭原则示例解析
    概念 唯一不变的是不断的变化,在软件开发中应该对需求的变化持开放态度,我们要做的就是如何将这种变化对我们现有的成果带来最小的冲击。开闭原则直接面对面向对象程序的目标扩展性和可维护性,...
    99+
    2022-11-12
  • java面向对象设计原则之迪米特法则分析详解
    目录概念使用拓展概念 迪米特法则解决类与类之间耦合度问题,如果类A调用了B类的某一个方法,则这两个类就形成了一种紧耦合的方式,当B类这个方法发生变化时,一定会影响A类的执行结果。迪米...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作