浅谈设计模式七大原则

为什么要是用设计模式?

在我们平时写代码的过程中,即使不用设计模式,功能也是没什么问题,但是使用设计模式可以是我们的代码更加简洁,更加美观,可以实现解耦的功能,让代码更加具有阅读性和理解性。
设计模式作为业界公认的存在,那么就会有一定的道理,我们可以通过学习前辈们的思想,将前人的经验和本领学到自身这样可以为以后自己的技能和能力奠定更深的基础。

包含的原则:

开闭原则

顾名思义就是对扩展放开,和对修改关闭,强调的是我们可以基于抽象来构建框架,然后用实现来扩展具体的细节,这样子提升我们的软件系统的高可用性和可维护性。
例如:

  1. 在很多公司现在都是弹性工作时间,都是固定每天工作8小时,早来早走晚来晚走,这就是对开闭原则的一种体现,即对每天上班的时间量进行关闭,然后对上下班的时间进行了开放。

依赖倒置原则

是指在设计代码的结构时,高层模块不应该依赖于底层模块,两个模块均需要依赖与对应的抽象,就是指抽象不应该依赖于细节,而细节应该要依赖抽象。通过此原则可以实现代码的耦合度,这样可以提高系统的可读性和拓展性,减少后期的维护成本。

单一职责原则

指的是不要存在多个条件导致类变更。这样可以进行解耦,后期需求中对一个条件进行变更不会影响另一个分支的正确性。

接口隔离原则

指用多个接口的方式来实现具体的需求,而不是使用一个单一的总接口,客户端不应该依赖他不需要的接口,那么在设计接口时应该注意一下的几个点:

  1. 一个类对另一个类的依赖应该建立在最小的接口之上。
  2. 建立许多单一的接口,千万不要建立庞大企鹅臃肿的接口。
  3. 尽量将接口细化,接口中的方法应该尽量的有限制(适度)
    接口隔离原则使我们代码对于高内聚低耦合的设计思想的一种很好的体现,使得我们的代码的扩展性和维护性得到很大的提高

迪米特原则

又叫最少知道原则,指的就是一个对象应该对其他对象保护最少的了解,这样可以降低类与类之间的耦合度。

里氏替换原则

值得是每一种类型为T1的对象o1,都有类型为T2的对象O2,使得对于所有T1的代码在将T1换成T2时,程序的行为没有发生什么大的变化,那么T2就是T1的子类型。话剧通俗易懂的话就是所有适合超类代码的地方,替换成子类对象时,依旧可以成功运行。就是子类可以扩展父类行为但是不能改变原有的父类方法中的功能。

  1. 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
  2. 子类可以增加自己特有的方法。
  3. 当子类的方法重载父类的方法时,方法中的入参需要比父类方法中的参数更加宽松。

合成复用原则

指的是尽量使用对象组合的方式而不是使用继承关系来达到软件复用的目的,这样可以使得系统和类之间组合更加灵活,能创造更多的可能性。可以使得一个类的变化对其他的类的影响会相对较少。
继承也可叫做是白箱复用,组合可以叫做是黑箱复用,应为继承相当于将超类中所有的实现细节暴露给了子类,二组合我们是无法获取到类以外的对象的实现细节的。

设计模式总结

我们在学习设计模式时,不应该为了使用设计模式去套用设计模式,应该是在出现问题时我们权衡时间、人力、成本、质量这些因素后在适当的场景遵循设计原则,让设计模式自然而然变成我们遇到问题时首先想到的是用哪种可以解决,而不是生搬硬套,要让其成为一种顺其自然解决问题的思维方式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值