设计模式思想自己理解

VLC播放器,支持DVD、音频 CD、VCD 及各类流媒体协议 VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。 官网下载太慢,开源的 立即下载

     设计模式原则

总原则:开闭原则(Open Close Principle)

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,而是要扩展原有代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类等,后面的具体设计中我们会提到这点。

1、单一职责原则

不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不然,就应该把类拆分。

 

2、里氏替换原则(Liskov Substitution Principle)

里氏代换原则(LiskovSubstitution Principle LSP)面向对象设计的基本原则之一。里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。——From Baidu 百科

历史替换原则中,子类对父类的方法尽量不要重写和重载。因为父类代表了定义好的结构,通过这个规范的接口与外界交互,子类不应该随便破坏它。

 

理解:就是基类可以用的地方,子类都可以上岗(废话嘛,继承了的,当然可以啦)

 

3、依赖倒转原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

 

理解:就是面向接口,不与具体的接口子类交互,只调用基类(指针)的接口(多态自然就到了子类了)

 

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:每个接口中不存在子类用不到却必须实现的方法,如果不然,就要将接口拆分。使用多个隔离的接口,比使用单个接口(多个接口方法集合到一个的接口)要好。

 

理解:就是接口单一,不要冗余,不要出现使用者不需要的东西  (不能多)

 

5、迪米特法则(最少知道原则)(Demeter Principle)

就是说:一个类对自己依赖的类知道的越少越好。也就是说无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类。

最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。

 

理解:就是相当于A想用B,那么B就提供public方法就行了,不要把方法里面的东西暴露出来,让A知道,比如A需要B实现功能m,B实现m要两个方法,那么B就应该把这两个方法封装成一个public方法给A就行了,而不是给A提供m所需的两个方法(别让A知道的太多,不需要,它只要接口,知道怎么用就行)   (接口内容不能少,少了,就变成多接口了)

 6、合成复用原则(Composite Reuse Principle)

原则是尽量首先使用合成/聚合的方式,而不是使用继承。

http://www.cnblogs.com/shaosks/archive/2012/02/08/2342593.html



几种设计模式的理解设计模式理解 这个文档中有几种设计模式,是我自己总结出来的,希望对大家有用处呀。 立即下载

相关推荐

基于Matlab与Bladed联合仿真的交互软件设计

基于Matlab与Bladed的交互软件设计

weixin_45014222的博客 815

JAVA设计模式总结之23种设计模式(重点!!!)

JAVA设计模式总结之23种设计模式:一、什么是设计模式设计模式遵循的原则有6个:二、设计模式的三个分类三、各分类中模式的关键点四、概说23种设计模式1.单例模式(Singleton)2.工厂方法模式(Factory Method)3.抽象工厂模式 (Abstract Factory)4.建造者模式(Builder)5.原型模式 (Protype)6.适配器模式 (Adapter)7.桥接模式8.组合模式9.装饰模式10.外观模式11.亨元模式12.代理模式13.访问者模式14.模板模式15.策略模式16

LonE li 2070

视频帧插学习(三):ema-vfi代码拆解和分析

video interp EMA-VFI

mikhailbran的博客 708

23种设计模式理解

一、设计模式概述 设计模式就是一种通过大量编程实践总结出来的模式规范,每种设计模式都对应了其特殊的应用场景。当然,设计模式只是一种简单抽象化出来的语义概念,不必执着于词语的片面含义,实际使用中往往是各种模式之间的交叉或复合使用。 二、23种设计模式理解 1. 单例模式 单例模式就是整个系统中,某个类只能有一个实例存在,并提供一个全局访问接口。 当系统中只需要一个实例对象的时候,如打印机实例,可以考虑使用单例模式;从而提高系统效率、节约系统资源、严格控制用户访问。 2. 工厂模式 工厂模式包含工厂方法模式和抽

蓝天⊙白云的博客 623

Cadence OrCAD: 层次化设计 Hierarchical Design

详细介绍OrCAD的原理图层次化设计方法。

Fantasy237的博客 1万+

移远EC800M CAT1模块HTTP POST实战:从AT指令到数据上报的完整避坑指南

本文详细介绍了移远EC800M CAT1模块通过AT指令实现HTTP POST数据上报的完整开发流程,包括模块初始化、PDP上下文配置、HTTP POST实现及优化策略。针对实际开发中的常见问题如网络异常、低功耗需求等提供了经过验证的解决方案,帮助开发者快速实现稳定可靠的物联网数据传输功能。

weixin_42556197的博客 479

23 种设计模式详解(全23种)

设计模式

雨中深巷的油纸伞 12万+

【Elasticsearch专栏 16】深入探索:Elasticsearch的Master选举机制及其影响因素分析

Elasticsearch的Master选举机制是其分布式架构的基石,确保集群高可用性和数据一致性。通过多数派协议,节点间交换信息并投票选举Master,以维护集群状态和处理请求。该机制自动处理故障转移,保障服务连续性。

weixin_40736233的博客 1774

IP网络摄像头国标GB28181协议国标视频平台EasyGBS视频流RTSP,地址在VLC无法播放是什么原因?

在以前的博文中,我们为大家介绍过TSINGSEE青犀视频云-边-端产品的演示平台(EasyGBS平台如何开启“演示”模式),在演示模式下,用户可以随意切换界面,但是不能做添加或删除等设置操作。 在EasyGBS演示模式下出现一个问题,就是点击播放,分发出的视频流,除RTSP协议外的都能在vlc正常播放,单RTSP协议视频流无法播放。 可以看到VLC播放器一直在报错“您的输入无法被打开”,我们通过拆分rtsp地址发现无法播放是因为在播放地址后面添加了token参数,去除后才能够正常播放。

EasyGBS的博客 882

数学建模Matlab算法,第七章 对策论

对策论作为研究竞争与决策的数学理论,从零和对策到非常数和对策,为分析各类博弈问题提供了系统框架。其核心要素包括局中人、策略集和赢得函数,通过稳定解、Nash平衡点等概念揭示竞争规律。该理论广泛应用于经济、军事、政治等领域,不仅提供具体分析工具,更改变了决策思维方式,强调在互动中实现理性选择。对策论既揭示了竞争本质,也凸显合作价值,为解决社会矛盾、促进共赢发展提供了重要启示,在全球化背景下将发挥更大作用。

unber的博客 107

大模型之Spring AI实战系列(二十六):Spring Boot + DeepSeek 实战指南:构建AI聊天应用

在人工智能技术飞速发展的今天,大型语言模型已经成为了推动技术创新的重要力量。DeepSeek作为国内领先的大型语言模型提供商,其推出的DeepSeek系列模型在多个领域都展现出了卓越的性能。本文将详细介绍如何使用Spring Boot框架集成DeepSeek API,构建一个简单的AI聊天应用。我们将实现两个核心功能:普通文本生成和流式文本生成。

寻道AI,探索AI无限可能! 2258

如何通俗理解设计模式及其思想

本文由 玉刚说写作平台 提供写作赞助 原作者:却把清梅嗅 原文地址:https://mp.weixin.qq.com/s/T6ZCQRydzFgVUezlywC8Zw 版权声明:本文版权归微信公众号 玉刚说 所有,未经许可,不得以任何形式转载! 术与道 数据结构,算法,设计模式被认为是程序员必备技能的三叉戟,如果说编程语言的语法特性和业务编码能力是【术】,...

却把清梅嗅的博客 2万+

c++ pcl点云处理(2025 长期更新)

目录1.常用的点云文件2.认识点云的文件格式3.点云的数据结构4.输入输出(IO)5.KD树6.Oc树(八叉树)7.点云可视化8.点云滤波9.点云拟合分割10.点云与图像11.特征点与特征描述及提取12.点云配准13.点云曲面重建

twnkie的博客 2258

如何通俗理解设计模式及其思想?

本文由玉刚说写作平台提供写作赞助 原作者:却把清梅嗅 版权声明:本文版权归微信公众号玉刚说所有,未经许可,不得以任何形式转载 术与道 数据结构,算法,设计模式被认为是程序员必备技能的三叉戟,如果说编程语言的语法特性和业务编码能力是【术】,那么这三者可以称得上是【道】——【术】可以让你在IT行业赖以生存,而【道】则决定你未来在技术这条道路上可以走多远。 边学边忘的窘境 先自我介绍一下。 我是一个...

weixin_33949359的博客 1544

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

重构 - 理解设计模式的捷径(5 设计模式的思想)

 第4章 设计模式的思想前面一章通过一个简单的需求的变化过程完整地介绍了软件重构的过程,重构所引入的设计思路,设计模式的引入,以及最终解决方案的实现过程。还是按照那位名人的说法:了解设计模式的演化过程远比了解设计模式本身重要。同样,理解设计模式演化过程中所采用的思想远比学会设计模式本身重要。我们可以再来总结一下这一系列演化采用了哪些面向对象的设计思想。首先,我们在解决区域切换函数庞大的

yao050421103的专栏 1031

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

如何通俗理解设计模式及其思想_

首先阐述书中结构型模式的定义:结构型模式涉及到如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。在学习之初,对我个人而言,阅读《设计模式:可复用面向对象软件的基础》 的内容宛如诵读天书,书中对每种设计模式都进行了详细的讲解,但是我看完之后,很快就忘掉了,亦或是对看起来非常相似的两种设计模式感到疑惑——书中的讲解细致入微,但是太抽象了。最终(也就是现在),我个人对于结构型模式的理解是,通过将不同类或对象的组合,采用继承或者组合接口,或者组合一些对象,以实现新的功能。

2301_82242499的博客 985

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

理解23种设计模式思想

单例

Flora的博客 161

如何通俗理解设计模式及其思想_,开源至上

首先阐述书中结构型模式的定义:结构型模式涉及到如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现。在学习之初,对我个人而言,阅读《设计模式:可复用面向对象软件的基础》 的内容宛如诵读天书,书中对每种设计模式都进行了详细的讲解,但是我看完之后,很快就忘掉了,亦或是对看起来非常相似的两种设计模式感到疑惑——书中的讲解细致入微,但是太抽象了。最终(也就是现在),我个人对于结构型模式的理解是,通过将不同类或对象的组合,采用继承或者组合接口,或者组合一些对象,以实现新的功能。

743
上一篇: ffmpeg release下出错
下一篇: _DllMain@12 已经在 MSVCRTD.lib(dllmain.obj) 中定义
mincheat
博客等级 码龄17年 46粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值