设计模式七大原则简述
设计模式七大原则简述
参考链接:https://baijiahao.baidu.com/s?id=1718719324807159216&wfr=spider&for=pc
设计模式原则,其实就是程序员在编程时,应当遵循的原则,也就是各种设计模式的基础,即设计模式为什么这样设计的依据。
设计模式七大原则有:单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则。
单一职责原则
对类来说,一个类应该只负责一项职责。如类A负责两个不同的职责:职责1,职责2。当职责1需求变更而改变类A时,可能造成职责2执行错误。所以需要将类A分解为A1,A2。
接口隔离原则
客户端不应该依赖它不需要的接口,即一个类对另外一个类的依赖应该建立在最小的接口上。即尽量不要一个接口存在一个类不需要功能,如果存在,应该将该接口分离为两个接口。
依赖倒转原则
依赖倒转原则是指高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象;依赖倒转的中心思想是面向接口编程。
里氏替换原则
在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类的方法。
继承包含这样一层含义:父类中凡是已经实现好的方法,实际上是在设定规范和契约,虽然它不强制要求所有的子类必须遵循这些契约,但是如果子类对这些已经实现的方法任意修改,就会对整个继承体系造成破坏。
继承在给程序设计带来便利的同时,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能产生故障。所以,在编程中,如何正确的使用继承?使用里氏替换原则。
开闭原则
当应用的需求改变时,在不修改软件实体的源代码或二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。
迪米特法则
迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供 public方法,不对外泄露任何信息。
合成复用原则
合成复用原则就是尽量使用合成/聚合的方式,而不是使用继承。
设计模式七大原则简述相关推荐
- 设计模式七大原则知识概括
设计模式七大原则知识概括 设计模式的目的 设计模式七大原则 单一职责原则 接口隔离原则 依赖倒转(倒置)原则 里氏替换原则 开闭原则 迪米特法则 合成复用原则 设计原则核心思想 设计模式的目的 目的: ...
- Java面试之设计模式七大原则
最近项目不太忙,不怎么加班,正利用晚上时间好好学习学习设计模式,之前可能多多少少都用到过,但是有些还是很模糊,这下正好系统的学一下. 好了,话不多说,进入正题. 1.什么是设计模式? 软件工程中,设计 ...
- 第 2 章 设计模式七大原则
第 2 章 设计模式七大原则 1.设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战, 设计模式是为了让程序(软件),具有如下更好的 ...
- 设计模式——七大原则(附代码示例)
一. 设计模式概念 对接口编程而不是对实现编程:优先使用对象组合而不是继承 二. 设计模式总览 1. 创建型模式(Creational Patterns):(5) 单例(Singlet ...
- 设计模式——七大原则
设计模式--七大原则 汇总篇 1.单一职责 2.接口隔离 3.依赖倒转 4.里氏代换原则 5.开闭原则 6.迪米特法则 7.合成复用 汇总篇 1.单一职责 对类来说的,即一个类应该只负责一项职责.如类 ...
- 图解设计模式-设计模式七大原则
Java设计模式 设计模式七大原则 设计模式的目的 编写软件过程中,程序员面临来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式是为了让 **程序(软件)**具有更好的 ...
- Day305.设计模式七大原则 -Java设计模式
七大设计原则 一.设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等多方面的挑战,设计模式是为了让程序(软件),具有更好的↓↓↓ 1. 代码重用 ...
- Java设计模式七大原则-单一职责原则
目录 概述:设计模式的目的 设计模式七大原则 单一职责原则 单一职责原则注意事项和细节 概述:设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等 ...
- 设计模式七大原则介绍
文章目录 1. 设计模式有哪些种类 2. 设计模式的目的 3. 设计模式七大原则 3.1. 单一职责原则 1. 基本介绍 2. 模拟场景 2. 接口隔离原则 1. 基本介绍 2. 模拟场景 3. 依赖 ...
- JAVA设计模式七大原则
设计模式七大原则 设计模式目的 1.代码重用性 2.可读性 3.可读性 4.扩展性 5.可靠性 6.高内聚低耦合 七大原则 1.单一职责原则 一个类或方法中只做一件事情 2.接口隔离原则 一个类通过接 ...
最新文章
- fftw_plan_dft_2d优化
- webpack window 添加第三方库
- 分析性能瓶颈 — 调试OutOfMemoryException
- JS基础入门篇(四十三)—ES6(二)
- 添加jQuery方法解析url查询部分
- C# .NET 使用DotNetZip开源类库 处理 压缩/解压 Zip 处理乱码情况
- 软件开发 —— 过程资产与交付件
- python武器代码_程序员需要掌握的七种 Python 代码更易维护的武器
- scala trait 另一种用法类混入
- 新萝卜家园 ghost xp3 2013 5月纯净版
- windows 逆向技术必备知识(书籍)
- 手机计算机图标大全,我的电脑里我的手机图标怎么删除
- 乐Pro3 乐视X720/乐视X722通刷官方线刷包_救砖包_解账户锁
- github 访问慢,一键加速,完美访问
- 历数OpenMobile开发的一些坑
- 小程序入门第二课 — 组件与WXML语法
- java实现简单的文件下载
- [CortexM--CMSIS]详细的说明
- linux桌面版和服务器版区别_简单普及一些linux和windows的区别,减少新入手一些云服务时的不适应...
- 在html语言中pre的作用是什么标记,在html中,标记pre的作用是
热门文章
- numpy-np.Inf
- leetcode-二叉树中的最大路径和
- 人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世
- 几种常见的微服务架构方案——ZeroC IceGrid、Spring Cloud、基于消息队列、Docker Swarm...
- 完美C++(第5版)(双色)
- 单元测试之误解与困境
- HTML - 元素/标签和属性基础
- 【医疗影像处理】DICOM Rescale Intercept / Rescale Slope
- python的作用域分别有几种_Python中作用域的深入讲解
- 码支付如何对接网站_做“刷脸支付”怎么推广?怎么办理刷脸支付POS机?