设计模式六大原则(简单总结)

一、单一职责原则

通俗来说即一个类只负责一项职责(实现类要职责单一),可以降低类的复杂度,提高系统的可读性、可维护性,降低类修改时对其他功能的影响

二、里氏替换原则

即子类继承父类时,子类可以扩展父类的功能,但不能改变父类原有的功能(不要破坏继承体系)

三、依赖倒置原则

1、上层模块不应该依赖底层模块,它们都应该依赖于抽象。

2、抽象不应该依赖于细节,细节应该依赖于抽象。

即面向接口编程

四、接口隔离原则

为各个类建立专用的接口,注重对接口依赖的隔离,但也需要注意接口尽量小的前提下需要适度,否则会造成接口数量过多,使程序设计变得复杂(设计接口要精简单一)

五、迪米特法则

降低类与类之间的耦合,高内聚、低耦合

六、开闭原则

类、模块、方法应该对扩展开放、对修改关闭,即用抽象构建框架,用实现扩展细节

Original: https://www.cnblogs.com/nisu-blog/p/15649557.html
Author: Nss、
Title: 设计模式六大原则(简单总结)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576152/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 限流常见方案

    限流常见方案 我歌月徘徊,我舞影零乱。醒时相交欢,醉后各分散。 一、限流思路 常见的系统服务限流模式有:熔断、服务降级、延迟处理和特殊处理四种。 1、熔断 将熔断措施嵌入到系统设计…

    数据库 2023年6月14日
    0100
  • BFS与DFS套路总结

    概述 深度优先遍历和广度优先搜索和广度优先搜索是解决图问题最常见的方式,并且在leetcode中有许多相关的变体,但万变不离其宗,其本质结构或者算法框架时固定的,因此本文BFS和D…

    数据库 2023年6月11日
    0123
  • MySQL实战45讲 12

    12 | 为什么我的MySQL会”抖”一下? 一条 SQL 语句,正常执行的时候特别快,但是 有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现…

    数据库 2023年5月24日
    085
  • MYSQL–>多表查询

    多表之间的关系 一对多(多对一) 如多个员工都属于一个部门的关系 实现方式:在多的一方建立外键连接少的一方 多对对 如学生与课程表之间的关系 实现方式:在学生与课程表之间建立第三方…

    数据库 2023年6月14日
    0120
  • B树-插入

    B树系列文章 1. B树-介绍 2. B树-查找 3. B树-插入 4. B树-删除 插入 根据B树的以下两个特性 每一个结点最多有m个子结点 有k个子结点的非叶子结点拥有 k −…

    数据库 2023年6月14日
    0113
  • Vuex 简单使用

    官网:https://vuex.vuejs.org/zh/ 参考文章:https://www.cnblogs.com/chinabin1993/p/9848720.html Vue…

    数据库 2023年6月16日
    0109
  • 【Java代码之美】 — Java17新特性初探

    1.背景 Oracle与9月中旬正式宣布推出Java17,正如官方所说: JDK17是最新的长期稳定支持的版本作为JDK11之后的下一个长期支持的版本; 也是Spring Fram…

    数据库 2023年6月6日
    0108
  • Python_Pandas入门

    一、什么是Pandas? 博文转载: https://www.runoob.com/pandas/pandas-tutorial.html 基于NumPy的一种工具,该工具是为解决…

    数据库 2023年6月11日
    0193
  • 计算字符串中指定字符最大连续出现的次数

    //连中次数public static int LzNum(String str) { // 分&#x5272…

    数据库 2023年6月11日
    0108
  • 那些技术实战中的架构设计方法

    上个月我写的一篇文章《关于技术能力的思考和总结》引起了大家的关注,好多读者的评论”以写代想、以想促真、以讲验真”,大家的感受很深刻,基于上次的文章,这篇文章…

    数据库 2023年6月14日
    093
  • Linux中的grep,sed,find的使用方法

    提取指定文件到指定目录/文件 语法:tar xvf test.tar test1(只提取test.tar 包中的test1文件到当前路径) 语法:tar xvf test.tar …

    数据库 2023年6月16日
    096
  • 主从复制架构直接转换MGR(manual)

    IP port role info 192.168.188.81 3316 node1 master 192.168.188.82 3316 node2 slave1 192.16…

    数据库 2023年6月16日
    0233
  • jsp change事件

    业务场景: 导出按钮是否显示的条件如下: 1、必须选择开始时间和结束时间 2、根据筛选条件查询必须存在数据 3、当点击提交后并且满足如上两个条件,导出按钮变为可选后,如果用户修改了…

    数据库 2023年6月9日
    094
  • JUC的数据库连接池小练习

    JUC练习数据库连接池实现 通过一个连接数组来充当连接池 一个原子的标记数组 通过cas来保持多线程下的安全,用synchronized来进行暂停和唤醒 @Slf4j public…

    数据库 2023年6月11日
    0101
  • 【Kubernetes系列】Kubernetes组件介绍

    文章目录 概述 Control Plane(控制面) * etcd(分布式的键值对数据存储系统) kube-apiserver(API服务器) kube-scheduler(调度器…

    数据库 2023年6月6日
    0109
  • 基于Vue的二进制时钟组件 — fx67llBinaryClock

    fx67llClock Easy & Good Clock ! npm 组件说明 一个基于Vue的二进制时钟组件,没什么卵用,做着好玩,可以方便您装饰个人主页 使用步骤 n…

    数据库 2023年6月11日
    0101
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球