
面向对象设计原则——单一职责原则
发布日期:2021-05-07 01:31:59
浏览次数:11
分类:技术文章
本文共 958 字,大约阅读时间需要 3 分钟。
概念
不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,否则就应该把类拆分。交杂不清的职责将使得代码牵一发而动全身,导致代码混涩难懂,不易修改、难以扩展和复用。如:以前开发C/S程序中的胖客户端程序,就是将人机交互逻辑、业务加工处理逻辑和数据库操作逻辑混合在一起。
实现
单一职责原则是进行类的划分和封装的基本原则,进行类的具体抽象。尽量做到,类的功能单一和清晰化。
- 根据机能划分,使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间的松耦合。
- 当前开发框架一般为分层框架,在分层框架中,已经明确给出了各层的职责,对于业务简单的小型系统,个人认为类的划分按照以下步骤即可。 前端页面:职责主要处理用户操作逻辑(包括有效性验证、样式),将公用的控件、组件进行独立封装,封装的组件不进行后台数据的访问。功能模块(独立页面)为单位完成各种组件控件的组装和数据的提取。 后端controller层:职责为完成对前端展示数据的格式转换及提交操作信息的接收;小型信息系统一般以前端独立页面(功能模块)为单位封装controller,一个controller完成相应功能模块所有的信息功能。 后端services层:职责完成业务逻辑及数据的加工;与controller层封装类对应,对外接口满足controller的需求,还需对数据的加工处理、业务规则进行抽象,进一步进行划分相关业务类,后端services类似设计模式中门面模式,将controller和各种业务逻辑及数据库逻辑进行隔离,仅提供和controller之间的交互。一般小型简单系统仅使用后端services类即可完成。 dao层:职责完成数据持久化问题;dao层类分两种,一种为需要进行增删改查操作的表创建一个dao层类(接口);另一种是完成关联查询、存储过程的按照功能划分独立的类(接口) 实体层:职责则是数据的载体功能;需要完成增删改查表创建独立实体;对于关联查询创建独立的数据实体。
拓展:
- 单一职责原则是写代码最容易违反的一个原则,违反此原则代码立即转换成all in one;
- 虽然很多框架明确规定各层职责,但程序员经常将代码写到一处;
- 虽然使用面向对象语言,还是面向过程调用
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月31日 11时09分53秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
poj3617
2019-03-04
poj3069
2019-03-04
Java洛谷P5461 赦免战俘讲解
2019-03-04
关于 form表单 嵌套问题的解决方案
2019-03-04
论转发与重定向参数传递问题(jsp+servlet项目开发遇到的问题)
2019-03-04
Android—— log.e(),log.d(),log.i()等的区别
2019-03-04
js中时间戳转时间格式
2019-03-04
位运算
2019-03-04
MarkDown
2019-03-04
线性代数 16 向量空间
2019-03-04
nginx 配置实例 - 反向代理(1)
2019-03-04
c++ 函数化 面向对象
2019-03-04
【无需额外安装插件】vscode 同步插件、设置、UI状态 | 超简单方法
2019-03-04
【unity shader 入门精要】CH2 渲染流水线
2019-03-04
【unity shader 入门精要】CH7 基础纹理
2019-03-04
java学习笔记6:windows、linux安装配置jdk
2019-03-04
java学习笔记24:文档注释与代码块
2019-03-04
java学习笔记31:Arrays类介绍使用
2019-03-04