接口隔离原则_设计模式之七大设计原则(上)
这是雷总20多年前写的汇编程序,像诗一样优雅
而中国诗词讲究平仄、押韵、对仗等一系列的规则原则,
那么想要写出像诗一样优雅的程序你不得不知的 -- 设计模式之七大原则:
1.开闭原则:对修改关闭,对扩展开放。
2.单一职责原则:每个类、方法只负责一个职责或功能。
3.接口隔离原则:接口设计要精简单一。
4.里氏替换原则:子类可以扩展父类的功能,尽量不修改父类原有的功能。
5.依赖倒置原则:高层不依赖底层,两者都该依赖接口。(面向接口编程)
6.迪米特法则:也称最少知道原则;只和你的朋友说话,不与陌生人说话。
7.合成复用原则:尽量先使用组合或聚合实现关联关系,其次在考虑使用继承关系
开闭原则
一天小A开发了某项功能经过测试并上线。但有一天这项功能需要进行升级,此时小A 已离职,接管小A 的小B 不是在小A的源码上进行扩展,而是直接拿源码进行修改,造成了测试需要重新测试原来已上线的功能。这样不仅使生产效率降低,而且还降低了系统稳定性;当软件需要变化时,尽量通过扩展软件来实现变化,而不是通过修改已有的代码来实现变化。(祖传代码不能动)
单一职责原则
5人组装一台电脑主机步骤一:将主板安装到机箱上。步骤二:将CPU安装到主板并加上CPU风扇。步骤三:将内存条、显卡、硬盘安装到主板上。步骤四:将电源安装到机箱上并接入CPU、主板、显卡。步骤五:电源线整理并封箱。前置条件:5人不会组装电脑。岗前培训:此时领导培训该五位新人,讲解如何完整的组装一台电脑,但5位新人并没有完全吸收领导所讲解的。
实操:5人单人作业 pk 5人流水作业
5人单人作业:每人负责完整的组装步骤,由于缺少实操,在每个步骤上都卡壳,领导也只能给每一位新人逐步解答。
5人流水作业:每人只负责一个步骤,即使5人不会完整的组装电脑,但相对单人作业模式会减少许多问题。
把每人人比作类来看,即可得出 每个类、方法只负责一个职责或功能从而降低类或方法的复杂度。从而提高程序的可读取性。
接口隔离原则
某笔记本电脑需要两个type-c插槽,一个既能充电又能传输数据,另一个仅数据传输;
此时定义一个type-c接口:
interface TypeC { //数据传输 public function data(); //充电 public function charge();}
具有实现类:
//typc1class TypeC1 implements TypeC{ public function data(){ echo "实现数据传输"; } public function charge(){ echo "实现充电"; }}//typc2class TypeC2 implements TypeC{ public function data(){ echo "实现数据传输"; } public function charge(){ throw new \Exception("我可能会爆炸"); }}
此时TypeC2并不需要实现充电接口。
将其修改之:
interface Charge{ //充电 public function charge();}interface TypeC { //数据传输 public function data();}
具体实现类:
class TypeC1 implements TypeC,Charge{ public function data(){ echo "实现数据传输"; } public function charge(){ echo "实现充电"; }}class TypeC2 implements TypeC{ public function data(){ echo "实现数据传输"; }
}
充电接口单独提取出来,需要实现充电接口的Type-c去实现.其客户端不应该依赖它不需要的接口,这就是接口隔离原则。
接口隔离原则_设计模式之七大设计原则(上)相关推荐
- 【设计模式】设计模式总结 ( 七大设计原则 | 创建型模式 | 结构型模式 | 行为型模式 ) ★★★
文章目录 一.七大设计原则 1.开闭原则 2.依赖倒置原则 3.单一职责原则 4.接口隔离原则 5.迪米特原则 6.里氏替换原则 7.合成复用原则 二.创建型模式 0.简单工厂模式 ( 不属于 GOF ...
- 设计模式的七大设计原则:其二:接口隔离原则
接口隔离原则: 基本介绍: 1.客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上 2.先看一张图 3.类A通过Interface1依赖类B,类C通过接口Interface ...
- 代码规范七大原则_设计模式的七大原则详解||上篇
Hello 丨World 当机会变得稀有,当竞争变得激烈 当方向不再清晰,当风口不再有风 关键词||设计模式 全文约7685字,细读大约需要20分钟 1 认识设计模式 1.1 什么是设计模式 所谓设 ...
- Java设计模式--------面向对象七大设计原则
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.单一职责原则 二.开闭原则 三.接口隔离原则 什么是接口隔离原则 接口隔离原则分析 四.里氏替换原则 继承 为什么 ...
- 设计模式的七大设计原则:其七:合成复用原则
合成复用原则(Composite Reuse Principle) 基本介绍: 原则是尽量使用合成/聚合的方式,而不是使用继承. 设计原则核心思想: 1.找出应用中可能需要变化之处,把它们独立出来,不 ...
- 设计模式的七大设计原则:其三:依赖倒转原则
依赖倒转原则: 基本介绍: 依赖倒转原则(Dependence Inversion Principle)是指: 1.高层模块不应该依赖低层模块,二者都应该依赖其抽象 2.抽象不应该依赖细节,细节应该依 ...
- 设计模式的七大设计原则:其五:开闭原则
开闭原则: 基本介绍: 1.开闭原则(Open Closed Principle)是编程中最基础,最重要的原则. 2.一个软件实体如类,模块和函数应该对扩展开饭,对修改关闭.用抽象构建框架,用实现扩展 ...
- 设计模式的七大设计原则:其六:迪米特法则
迪米特法则: 基本介绍: 1.一个对象应该对其他对象保持最少的了解 2.类与类关系越密切,耦合度越大 3.迪米特法则(Demeter Principle)又叫最少知道原则,即一个类对自己依赖的类知道的 ...
- 设计模式的七大设计原则:其四:里氏替换原则
里氏替换原则: OO中的继承性的思考和说明: 1)继承包含这样一层含义:父类中凡是已经实现好的方法,实际上时在是设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的 ...
最新文章
- Android 替换TextView 里面指定的符号
- Python3的urllib.parse常用函数小结
- MySQL搭建主从复制 读写分离 分库分表 MyCat高可用
- 福州大学软工 1715 | K 班 - 启航
- C语言 二维数组行数和列数计算 - C语言零基础入门教程
- php版谁是卧底,机器人陪你玩“谁是卧底quot;游戏
- java开发者工具开源版_6种开源工具可帮助教育工作者保持井井有条
- 生成jacoco报告_jacoco生成的覆盖率文件
- Flume的安装与使用
- Atitit.计算机图形图像图片处理原理与概论attilax总结
- Qt通过域名获取IP地址
- python声音模拟_5秒钟让python克隆别人的声音
- Go Flutter Desktop (二) go 二进制程序打包为 mac app(dmg)
- git 清除版本库中的忽略文件
- LSD(Line Segment Detector)直线提取算法
- CentOS 8.1安装MySQL 8.0详解
- android 陀螺仪滤波_Arduino MPU6050陀螺仪运用卡尔曼滤波姿态解算实验
- IDEA中 Maven Projects 窗口如何显示
- 三角形加几笔能变成什么_一个圆添上几笔能出来什么形状?例如:表,太阳,向日葵.-圆形加几笔得什么事物-数学-伍靖都同学...
- 几万创业做什么好_适合小投资者轻资产的创业项目_加油优惠卡
热门文章
- Python-第三方库requests详解
- javaweb学习总结(三十八)——事务
- C#怎么遍历一个对象里面的全部属性?
- iBatis.Net(C#)SQL数据映射
- SQL SERVER 2005 进行XML查询
- Redis与Memcached的比较
- nginx整合php+lua+oracle环境搭建
- java 切面获取参数_每天分享一点Java知识(spring-aop)
- 数据流图软件_软件工程导论知识点梳理之概念题
- python向端口发出数据_Python写的简单的端口监听,显示端口上收到的数据,TCP的...