大话模式的总结

2024-08-26 11:58
文章标签 总结 模式 大话

本文主要是介绍大话模式的总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


      下面这幅图是我自己总结的大话模式的中心思想。

 


里氏代换原则:

子类可以扩展父类的功能,但不能改变父类原有的功能

 

 

依赖倒置:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。

 依赖倒置原则的核心思想是面向接口编程。

 

 迪米特法则:就是说的两人之间尽量保持陌生减少耦合。

 

设计模式共有23种。

但是我们进一步分析可以将这23个模式分成3大类。


1.创建型(这是从对象的创建方面来考虑的),但是真正上简单工厂不是GoF总结出来的模式,原因你懂的。


这其中的3个工厂模式迷惑了我一段时间,就是看UML图上得知他们三者之间应该是越来越抽象,但具体有什么区别还真是不知道。后来上网查了一些资料才慢慢李处头绪。首先工厂模式主要是提供了接口减少了与外界的联系。但是他们的区别究竟在哪里呢?


简单工厂,我就不多说什么了,但是工厂方法和抽象工厂模式我们还是有必要来区别一下的。例如现在有这样的一个场景,两个不同的工厂专门造锤子,另外两个个工厂专门造钉子。但是客户往往想在一个地方既买到锤子又买到钉子,这时候就出现了一个抽象工厂五金铺。所以我的理解就是如果是生产同类产品的模式那就是属于工厂方法。如果是出现了生产不同产品的模式那就属于抽象工厂。

 

 

当然这仅仅是个人之言,若是您有什么好的观点,欢迎您赐教。

 

 

2.结构型(这主要是从对象之间的组成和依赖关系来考虑的)。这一类中的外观模式:它主要是将细粒度的对象包装成组粒度的对象,应用程序通过访问这个外观对象,完成对细粒度对象的调用。我们用一组图来说明


这是没有使用外观模式之前的。


这一幅是使用了外观模式之后的。这样的好处就是用外观模式将变化的部分封装起来。将变化的部分和应用程序隔离,这无疑有利于提高软件的易维护性。

3.行为(看名字既可以看出它是从对象行为的角度来分析的)。


最后我附上下图是23种模式的分类图:


 

这篇关于大话模式的总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot如何通过Map实现策略模式

《SpringBoot如何通过Map实现策略模式》策略模式是一种行为设计模式,它允许在运行时选择算法的行为,在Spring框架中,我们可以利用@Resource注解和Map集合来优雅地实现策略模式,这... 目录前言底层机制解析Spring的集合类型自动装配@Resource注解的行为实现原理使用直接使用M

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

C#原型模式之如何通过克隆对象来优化创建过程

《C#原型模式之如何通过克隆对象来优化创建过程》原型模式是一种创建型设计模式,通过克隆现有对象来创建新对象,避免重复的创建成本和复杂的初始化过程,它适用于对象创建过程复杂、需要大量相似对象或避免重复初... 目录什么是原型模式?原型模式的工作原理C#中如何实现原型模式?1. 定义原型接口2. 实现原型接口3

Java反转字符串的五种方法总结

《Java反转字符串的五种方法总结》:本文主要介绍五种在Java中反转字符串的方法,包括使用StringBuilder的reverse()方法、字符数组、自定义StringBuilder方法、直接... 目录前言方法一:使用StringBuilder的reverse()方法方法二:使用字符数组方法三:使用自

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

Python依赖库的几种离线安装方法总结

《Python依赖库的几种离线安装方法总结》:本文主要介绍如何在Python中使用pip工具进行依赖库的安装和管理,包括如何导出和导入依赖包列表、如何下载和安装单个或多个库包及其依赖,以及如何指定... 目录前言一、如何copy一个python环境二、如何下载一个包及其依赖并安装三、如何导出requirem

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

Java实现状态模式的示例代码

《Java实现状态模式的示例代码》状态模式是一种行为型设计模式,允许对象根据其内部状态改变行为,本文主要介绍了Java实现状态模式的示例代码,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来... 目录一、简介1、定义2、状态模式的结构二、Java实现案例1、电灯开关状态案例2、番茄工作法状态案例

Python中连接不同数据库的方法总结

《Python中连接不同数据库的方法总结》在数据驱动的现代应用开发中,Python凭借其丰富的库和强大的生态系统,成为连接各种数据库的理想编程语言,下面我们就来看看如何使用Python实现连接常用的几... 目录一、连接mysql数据库二、连接PostgreSQL数据库三、连接SQLite数据库四、连接Mo

Git提交代码详细流程及问题总结

《Git提交代码详细流程及问题总结》:本文主要介绍Git的三大分区,分别是工作区、暂存区和版本库,并详细描述了提交、推送、拉取代码和合并分支的流程,文中通过代码介绍的非常详解,需要的朋友可以参考下... 目录1.git 三大分区2.Git提交、推送、拉取代码、合并分支详细流程3.问题总结4.git push