当前位置: 首页 > news >正文

1.设计模式简介

一、设计模式的目的

1. 代码重用性

2. 可读性

3. 可扩展性

4. 可靠性

5. 高内聚,低耦合

二、设计模式七大原则

1. 单一职责原则

1)降低类的复杂度,一个类只负责一项职责

2)提高类的可读性,可维护性

3)降低变更引起的风险

4)通常情况下,应遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中的方法数量足够少,可在方法级别保持单一职责原则

2. 接口隔离原则

1)客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小接口上

2)类 A 通过接口 interface1 依赖类 B,类 C 通过接口 interface1 依赖类 D,如果接口 interface1 对于类 A 和类 C 来说不是最小接口,那么类 B 和类 D 必须实现他们不需要实现的方法

3)按隔离原则应处理为:将接口 interface1 拆分为独立的几个接口,类 A 和类 C 分别与他们需要的接口建立依赖关系;也就是采用接口隔离原则

3. 依赖倒置原则

1)高层模块不应该依赖低层模块,二者都应该依赖其抽象

2)抽象不应该依赖细节,细节更应该依赖抽象

3)依赖倒置的中心思想是面向接口编程

4)依赖倒置原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多;以抽象为基础搭建的架构比以细节为基础的架构要稳定的多;在 Java 中,抽象指的是接口或抽象类,细节就是具体的实现类

5)使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成

4. 理氏替换原则

1)所有引用基类的地方必须能透明的使用其子类的对象

2)在子类中尽量不要重写父类的方法

3)继承实际上让两个类耦合性增强了,应尽量通过聚合,组合,依赖来解决问题

5. 开闭原则

1)一个软件实体如类,模块和函数应该对扩展开放,对修改关闭;用抽象构建框架,用实现扩展细节

2)当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是修改已有的代码

6. 迪米特原则

1)一个对象应对其它对象保持最小的了解

2)类与类之间的关系越密切,耦合度越大

3)迪米特原则即最小知道原则,一个类对自己依赖的类知道的越少越好;对于被依赖的类不管多复杂,都尽量将逻辑封装在类的内部;对外除了提供 public 方法,不对外泄露任何信息

7. 合成复用原则

尽量使用合成/聚合的方式,而不是继承

三、设计原则核心思想

1)找出应用中可能需要变化的地方,把它们独立处理,不要和不需要变化的代码混在一起

2)针对接口编程,而不是针对实现编程

3)尽量降低交互对象之间的耦合度

http://www.lryc.cn/news/24550.html

相关文章:

  • 【算法题解】实现一个包含“正负数和括号”的基本计算器
  • 网站服务器如何防护攻击?网站服务器被挂马如何检测
  • JavaSE16-面向对象-接口
  • 安卓设备蓝牙键盘快捷键
  • Puppeteer项目结构梳理
  • (02)Unity HDRP Volume 详解
  • 拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴
  • 分享一种实用redis原子锁的方式
  • 【华为OD机试】 字符串解密(C++ Java JavaScript Python)
  • 金三银四,助力你的大厂梦,2023年软件测试经典面试真题(1)(共3篇)
  • 假如面试官要你手写一个promise
  • 【leetcode】寻找重复数
  • LeetCode 1247. Minimum Swaps to Make Strings Equal【数学,贪心,字符串】
  • pid控制加热算法,附代码仓库
  • 一文看懂预训练和自训练模型
  • (五十四)大白话索引的页存储物理结构,是如何用B+树来实现的?.md
  • 前端Vue代码风格指南
  • 「TCG 规范解读」基础设施架构和协议 (2)
  • NodeJs 中的 HTML 模板
  • 3.ffmpeg命令行环境搭建、ffmpeg命令行初步了解
  • Kubernetes初始化容器
  • leetcode: Swapping Nodes in a Linked List
  • Nydus 在约苗平台的容器镜像加速实践
  • 企业对不同形态CRM系统价格需求不同
  • 「JVM 高效并发」线程安全
  • 微信扫码登录
  • Unity协程的简单应用
  • LeetCode 1250. Check If It Is a Good Array【数论】
  • ETHDenver 2023
  • React架构演变