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

一、单一职责原则

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

二、里氏替换原则

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

三、依赖倒置原则

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

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

即面向接口编程

四、接口隔离原则

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

五、迪米特法则

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

六、开闭原则

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

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

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

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

(0)

大家都在看

  • Spring Security实现统一登录与权限控制

    1 项目介绍 最开始是一个单体应用,所有功能模块都写在一个项目里,后来觉得项目越来越大,于是决定把一些功能拆分出去,形成一个一个独立的微服务,于是就有个问题了,登录、退出、权限控制…

    数据库 2023年6月14日
    095
  • HttpServletResponse 类

    HttpServletResponse 类的作用 HttpServletResponse 类和 HttpServletRequest 类一样。每次请求进来,Tomcat 服务器都会…

    数据库 2023年6月11日
    074
  • 205. 同构字符串

    给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改…

    数据库 2023年6月16日
    078
  • MySQL数据库的创建、删除和备份

    总结MySQL数据库的创建、删除和备份操作 MySQL数据库的创建、删除和备份 数据库的创建 //使用指令创建数据库 CREATE DATABASE yjh_db01; //创建一…

    数据库 2023年6月16日
    077
  • Python 垃圾回收总结

    前言 最近在阅读《垃圾回收的算法与实现》,里面将讲到了一些常用的垃圾回收(Garbage Collect)算法,如:标记-清除、引用计数、分代回收等等。后面讲到了 Python 的…

    数据库 2023年6月6日
    099
  • MySQL(一)——查看密码与修改

    查看数据库密码,策略与修改 RPM安装: 源码安装: 进入:数据库 进入数据库后第一步设置密码: 查看密码策略 修改密码策略,长度 0宽容模式 混合模式,0关闭大小写 特殊字符 O…

    数据库 2023年6月14日
    0116
  • Redis学习

    Redis 因为没有指定配置文件 需配置 redis-server redis.windows.conf 之后自动启动 测试性能 redis-benchmark -p 6379 -…

    数据库 2023年6月16日
    069
  • 项目主干分支的server.sh被“覆盖”了?一个配置,解除烦恼

    我司项目利用springboot搭建,应用在部署到各环境后,程序启动命令靠的是我们在工程里配置的 scripts/server.sh。这个server.sh里最重要的东西是程序启动…

    数据库 2023年6月9日
    0104
  • DRF使用缓存

    在做项目的时候,有时很多数据都是经常被访问的而且数据是基本不变的,比如省市区的数据是经常被用户查询使用的,而且数据基本不变化,所以我们可以将省市区数据进行缓存处理,减少数据库的查询…

    数据库 2023年6月14日
    063
  • 多商户商城系统功能拆解29讲-平台端营销-会员签到

    多商户商城系统,也称为B2B2C(BBC)平台电商模式多商家商城系统。可以快速帮助企业搭建类似拼多多/京东/天猫/淘宝的综合商城。 多商户商城系统支持商家入驻加盟,同时满足平台自营…

    数据库 2023年6月14日
    094
  • 二手车价格预测 | 构建AI模型并部署Web应用 ⛵

    💡 作者:韩信子@ShowMeAI📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40📘 机器学习实战系列:https://www.s…

    数据库 2023年6月14日
    076
  • jupyter使用虚拟环境

    为了在jupyter中使用pyTorch的虚拟环境,来记录一下怎么操作一、conda命令的使用因为使用的是jupyter,所有就使用Anaconda Prompt来创建虚拟环境(也…

    数据库 2023年6月14日
    076
  • 通过NTFS日志分析文件的时间属性是否被篡改

    前期准备 NTFS日志记录了什么东西? NTFS日志会记录NTFS文件系统中文件的创建、修改、增加数据、删除等操作执行的时间,虽说这个日志也可以被第三方程序修改,但仍然可以作为一个…

    数据库 2023年6月11日
    088
  • MySQL5 单点安装

    Original: https://www.cnblogs.com/cheng9999/p/16501129.htmlAuthor: cheng_blogTitle: MySQL5…

    数据库 2023年6月16日
    073
  • leetcode 543. Diameter of Binary Tree 二叉树的直径(简单)

    给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。 示例 :给定二叉树 1 / \ 2 3 / \ …

    数据库 2023年6月16日
    088
  • Geoserver对发布的数据源进行金字塔切片

    一、建立切片数据源1.1建立工作区 1.2添加数据我这里是老师给的高清卫星地图数据,格式为tif工作区选择之前建立的工作区,浏览那里选择对应的文件 1.3建立切片源的图层这里建立的…

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