01设计模式简述及七大原则

2024-06-16 17:18

本文主要是介绍01设计模式简述及七大原则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

什么是设计模式?

  • 是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。
  • 目的为了实现代码的高内聚低耦合
  • 在项目中合理的运用设计模式可以巧妙的解决很多问题。
  • 设计模式在软件哪些地方被使用?
    • 面向对象(oo)>功能模块【设计模式 + 算法(数据结构)】> 框架【使用到多种设计模式】==> 框架【服务器集群】

设计模式的七大原则

  1. 单一职责原则(Single Responsibility Principle)
    • 对类来说,一个类只负责一个功能领域中的相应职责(就一个类而言,应该只有一个引起它变化的原因)。
    • 目的为了降低类的复杂性、提高类的可读性和可维护性。
  2. 接口隔离原则isp(Interface Segregation Principle)
    • 针对接口,实现接口最小化(接口中定义的方法尽可能少,功能单一)。
    • 类之间的依赖关系应该建立在最小的接口上,降低类之间耦合度。
  3. 依赖倒转原则(Dependence Inversion Principle)
    • 类似于针对接口编程思想,依赖于抽象,不要依赖具体类。
  4. 里式替换原则(Liskov Substitution Principle)
    • 是对开闭原则的补充或实现手段之一,尽量把基类设计为抽象类或者接口,让子类继承基类或实现接口,子类可以扩展基类的功能,但不改变基类的原有功能。
    • 实现开闭原则的关键就是抽象化,而基类与子类的继承关系就是抽象化的具体实现。
  5. 开闭原则ocp(Open Close Principle)
    • 对扩展开放、对修改关闭(尽量用继承或组合的方式来扩展类的功能,而不是直接修改类的代码)。
  6. 迪米特法则,又称最小知道原则(Demeter Principle)
    • 类向外公开的方法应该尽可能的少。
    • 依赖的对象尽可能的少,应当尽量少地与其他实体之间发生相互作用,是的系统功能模块相对独立。
  7. 合成复用原则(Composite Reuse Principle)
    • 软件复用时,尽可能先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。

设计模式类型分类

  • 创建型模式(Creational Patterns)
    1. 单例模式
    2. 工厂方法模式
    3. 抽象工厂模式
    4. 建造者模式
    5. 原型模式
  • 结构型模式(Structural Patterns)
    1. 适配器模式
    2. 桥接模式
    3. 组合模式
    4. 装饰模式
    5. 外观模式
    6. 享元模式
    7. 代理模式
  • 行为型模式(Behavioral Patterns)
    1. 访问者模式
    2. 模板模式
    3. 策略模式
    4. 状态模式
    5. 观察者模式
    6. 备忘录模式
    7. 中介者模式
    8. 迭代器模式
    9. 解释器模式
    10. 命令模式
    11. 责任链模式

J2EE模式(特别关注表示层)

  • MVC模式(MVC Pattern)
  • 业务代表模式(Business Delegate Pattern)
  • 组合实体模式(Composite Entity Pattern)
  • 数据访问对象模式(Data Access Object Pattern)
  • 前端控制器模式(Front Controller Pattern)
  • 拦截过滤器模式(Intercepting Filter Pattern)
  • 服务定位器模式(Service Locator Pattern)
  • 传输对象模式(Transfer Object Pattern)

这篇关于01设计模式简述及七大原则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067061

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

集中式版本控制与分布式版本控制——Git 学习笔记01

什么是版本控制 如果你用 Microsoft Word 写过东西,那你八成会有这样的经历: 想删除一段文字,又怕将来这段文字有用,怎么办呢?有一个办法,先把当前文件“另存为”一个文件,然后继续改,改到某个程度,再“另存为”一个文件。就这样改着、存着……最后你的 Word 文档变成了这样: 过了几天,你想找回被删除的文字,但是已经记不清保存在哪个文件了,只能挨个去找。真麻烦,眼睛都花了。看

JVM内存调优原则及几种JVM内存调优方法

JVM内存调优原则及几种JVM内存调优方法 1、堆大小设置。 2、回收器选择。   1、在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。   2、对JVM内存的系统级的调优主要的目的是减少

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

设计模式之工厂模式(通俗易懂--代码辅助理解【Java版】)

文章目录 1、工厂模式概述1)特点:2)主要角色:3)工作流程:4)优点5)缺点6)适用场景 2、简单工厂模式(静态工厂模式)1) 在简单工厂模式中,有三个主要角色:2) 简单工厂模式的优点包括:3) 简单工厂模式也有一些限制和考虑因素:4) 简单工厂模式适用场景:5) 简单工厂UML类图:6) 代码示例: 3、工厂方法模式1) 在工厂方法模式中,有4个主要角色:2) 工厂方法模式的工作流程

C#设计模式(1)——单例模式(讲解非常清楚)

一、引言 最近在学设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类) 二、单例模式的介绍 说到单例模式,大家第一

漫谈设计模式 [12]:模板方法模式

引导性开场 菜鸟:老大,我最近在做一个项目,遇到了点麻烦。我们有很多相似的操作流程,但每个流程的细节又有些不同。我写了很多重复的代码,感觉很乱。你有啥好办法吗? 老鸟:嗯,听起来你遇到了典型的代码复用和维护问题。你有没有听说过“模板方法模式”? 菜鸟:模板方法模式?没听过。这是什么? 老鸟:简单来说,模板方法模式让你在一个方法中定义一个算法的骨架,而将一些步骤的实现延迟到子类中。这样,你可

漫谈设计模式 [9]:外观模式

引导性开场 菜鸟:老鸟,我最近在做一个项目,感觉代码越来越复杂,我都快看不懂了。尤其是有好几个子系统,它们之间的调用关系让我头疼。 老鸟:复杂的代码确实让人头疼。你有没有考虑过使用设计模式来简化你的代码结构? 菜鸟:设计模式?我听说过一些,但不太了解。你觉得我应该用哪个模式呢? 老鸟:听起来你的问题可能适合用**外观模式(Facade Pattern)**来解决。我们可以一起探讨一下。

设计模式大全和详解,含Python代码例子

若有不理解,可以问一下这几个免费的AI网站 https://ai-to.cn/chathttp://m6z.cn/6arKdNhttp://m6z.cn/6b1quhhttp://m6z.cn/6wVAQGhttp://m6z.cn/63vlPw 下面是设计模式的简要介绍和 Python 代码示例,涵盖主要的创建型、结构型和行为型模式。 一、创建型模式 1. 单例模式 (Singleton