对于设计模式中七大原则的理解_设计模式的七大原则理解

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

2.详细解释

如果本篇博客对您有一定的帮助,大家记得留言+点赞+收藏哦。


设计模式中分别是创建型,结构型,行为型,总共有23中设计模式。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

使用设计模式能够使我们开发的程序,易维护、可拓展,可复用。但是在23个设计模式的背后,还有7个开发原则去支撑着设计模式,保证23个设计模式能够易维护、可拓展,可复用。所以这篇文章来解开七大设计原则的神秘面纱。

SOLID 是面向对象设计5大重要原则的首字母缩写,当我们设计类和模块时,遵守 SOLID 原则可以让软件更加健壮和稳定。(迪米特与组合/聚合是后加的)

设计模式.png


单一职责原则(SRP:Single responsibility principle)

1.设计原则的概念:

就一个类而言,应该仅有一个引起它变化的原因。

符合单一职责原则的类具有高内聚的特性

2.详细解释

每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。耦 合会影响复用性。

如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

所以要遵守单一职责原则,避免将不同职责的功能或接口写到同一个类中,增加了耦合性。


开闭原则(OCP:Open Closed Principle)

1.设计原则的概念:

软件实体(类、模块、函数等)应该可以扩展,但是不可修改。

对扩展是开放的,对于更改是封闭的。

面对新需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码

2.详细解释

当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则。

开闭原则是所有原则中最重要的原则,它是所有原则的“老大”,其他原则是服务于开闭原则的。


里氏替换原则(LSP:liskov substitution principle)

1.设计原则的概念:

子类型必须能够替换掉他们的父类型。所有引用父类的地方必须能透明地使用其子类的对象。

只有当子类可以替换掉父类、软件单位的功能不受影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为

正是由于里氏代换原则,才使得开放-封闭成为了可能。

由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以拓展。

2.详细解释

任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。

在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类已经实现了的方法。

里氏替换原则告诉我们,继承实际上让两个类耦合性增强了,在适当的情况下,可以通过聚合、组合、依赖来解决问题。


接口隔离原则(ISP:Interface Segregation Principle)

1.设计原则的概念:

客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。

2.详细解释

提供尽可能小的单独接口,而不要提供大的总接口。暴露行为让后面的实现类知道的越少越好。

建立单一接口,不要建立庞大的接口,尽量细化接口,接口中的方法尽量少。

接口是设计时对外部设定的约定,通过分散定义多个接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性​。


​依赖倒转原则(DIP:Dependence Inversion Principle)

1.设计原则的概念:

A.高层模块不应该依赖底层模块。两个都应该依赖抽象

B.抽象不应该依赖细节。细节应该依赖抽象。

简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

2.详细解释

跟面向对象的多态意思很相像。

核心思想就是面向接口编程,使用抽象的目的是制定规范,不涉及任何具体的操作,把展示细节的任务交给实现去完成。(跟里氏代换、接口隔离,有很大关系,最后都是为了要维持开闭原则)

采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,减少并行开发引起的风险,提高代码的可读性和可维护性。


写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-CfLU8BOD-1713592918498)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 27
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值