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

六大设计原则和23种设计模式

一、JAVA六大设计原则

JAVA设计模式提供六个基本原则,分别是:

开闭原则(OCP)

TheOpen-ClosedPrinciple

单一职责原则(SRP)

SingleResponsibilityPrinciple

里氏替换原则(LSP)

LiskovSubstitutionPrinciple

依赖倒置原则(DIP)

DependencyInversionPrinciple

接口隔离原则(ISP)

InterfaceSegregationPrinciple

迪米特法则(DP)

DemeterPrinciple

二、JAVA23种设计模式
1.创建型模式(5)

工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

2.结构型模式(7)

适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

3.行为型模式(11)

策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

三、在软件工程当中,设计原则和设计模式的区别

1.设计原则

设计原则是为了更好的设计软件的高层指导方针,它不提供具体的实现方式也不会绑定任何一种编程语言。最常用的原则是SOLID(SRP,OCP,LSP,ISP,DIP)原则。

2.设计模式

设计模式对关于面向对象问题的具体解决方案。比如说,如果你想创建一个类而且它在任何时刻只会有一个对象,那么你就应该使用单例类模式。设计模式是经过大量检测的安全的做法。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux-vim编辑器以及权限-04
  • Docker资源隔离的实现策略以及适用场景
  • 利用formdata自动序列化和xhr上传表单到后端
  • github项目-创建一个新分支
  • HarmonyOS Flex布局
  • 【博客搭建 第二篇章】项目中怎么引入其他的 icon
  • NLP——Transfromer 架构详解
  • HarmonyOS鸿蒙应用开发之Text组件的使用
  • gogs的安装和使用(docker)
  • [Bugku] web-CTF靶场系列系列详解⑥!!!
  • Leetcode每日刷题之75. 颜色分类(C++)
  • 搭建AI知识库:打造坚实的团队知识堡垒
  • MySQL —— CRUD
  • LeetCode——3143. 正方形中的最多点数
  • Qt Creator卡顿
  • [PHP内核探索]PHP中的哈希表
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • css的样式优先级
  • gitlab-ci配置详解(一)
  • Golang-长连接-状态推送
  • PHP那些事儿
  • Vim Clutch | 面向脚踏板编程……
  • Vue小说阅读器(仿追书神器)
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 后端_MYSQL
  • 京东美团研发面经
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 力扣(LeetCode)21
  • 前端临床手札——文件上传
  • 十年未变!安全,谁之责?(下)
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 译有关态射的一切
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (55)MOS管专题--->(10)MOS管的封装
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (pytorch进阶之路)扩散概率模型
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (附源码)基于SpringBoot和Vue的厨到家服务平台的设计与实现 毕业设计 063133
  • (转)visual stdio 书签功能介绍
  • (转)一些感悟
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .gitignore文件设置了忽略但不生效
  • .NET MVC第五章、模型绑定获取表单数据
  • .net wcf memory gates checking failed
  • .NET 表达式计算:Expression Evaluator
  • .net 连接达梦数据库开发环境部署
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调