设计模式拓展-设计模式6大原则

参考文章:https://blog.csdn.net/qq_40123329/article/details/95750112

设计模式的六大原则是什么

单一职责原则

里氏替换原则

依赖倒置原则

接口隔离原则

迪米特原则

开闭原则

什么是单一职责:

一个类只负责一项职责,尽量做到类的只有一个行为原因引起变化;

  a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;(根据我的理解就是一个类只做一件事情,比如这个类只生产鼠标,就别加键盘,主机这些功能)

当职能扩散时可以适度违背单一职能原则,方法是:

只有逻辑足够简单,才可以在代码级别上违反单一职责原则;只有类中方法数量足够少,才可以在方法级别上违反单一职责原则;(什么叫职能扩散,就是在后期在该功能的基础上又细分职能)

什么是里氏替换原则;

子类型必须可以替换掉它们的父类型。子类可以扩展父类的功能,但不能改变父类原有的功能。

什么是依赖倒置原则:

(1)高层模块不应该依赖于低层模块,2个都应该依赖于抽象。

(2)抽象不应该依赖于细节,细节应该依赖抽象。

什么是接口隔离原则:

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

什么是迪米特原则:

如果2个类不必彼此直接通信,那么这2个类不应当发生直接的相互作用,如果其中的一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。前提是在类的结构设计上,每一个类都应该尽量降低成员的访问权限。

迪米特原则的根本在于强调了类之间的松耦合。类之间的耦合越弱,越有利于复用,一个处在弱耦合的类被修改,不会对有关系的类造成波及。

不要和“陌生人”说话、只与你的直接朋友通信等,在迪米特法则中,对于一个对象,其朋友包括以下几类:

      (1) 当前对象本身(this);

      (2) 以参数形式传入到当前对象方法中的对象;

      (3) 当前对象的成员对象;

      (4) 如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友;

      (5) 当前对象所创建的对象。

什么是开闭原则

软件实体(类,模块,函数)应该可以扩展,但是不可以修改。即对于扩展是开放的,对于更改是封闭的。

面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码。开放-封闭原则是面向对象设计的核心所在,遵循这个原则可以使系统可维护,可扩展,可复用,灵活性好。

开闭原则无非就是想表达这样一层意思:用抽象构建框架,用实现扩展细节。因为抽象灵活性好,适应性广,只要抽象的合理,可以基本保持软件架构的稳定。而软件中易变的细节,我们用从抽象派生的实现类来进行扩展,当软件需要发生变化时,我们只需要根据需求重新派生一个实现类来扩展就可以了。当然前提是我们的抽象要合理,要对需求的变更有前瞻性和预见性才行。
说到这里,再回想一下前面说的5项原则,恰恰是告诉我们用抽象构建框架,用实现扩展细节的注意事项而已单一职责原则告诉我们实现类要职责单一;里氏替换原则告诉我们不要破坏继承体系;依赖倒置原则告诉我们要面向接口编程;接口隔离原则告诉我们在设计接口的时候要精简单一;迪米特法则告诉我们要降低耦合。而开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭
 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值