我是靠谱客的博主 火星上滑板,最近开发中收集的这篇文章主要介绍设计模式六大原则1. 单一指责原则2. 接口隔离原则3.依赖倒转原则4. 里氏替换原则5. 开闭原则6. 迪米特法则(最少知道原则),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

设计模式六大原则

  • 1. 单一指责原则
    • 优点
  • 2. 接口隔离原则
  • 3.依赖倒转原则
  • 4. 里氏替换原则
  • 5. 开闭原则
    • 修改
    • 扩展
    • 优点:
  • 6. 迪米特法则(最少知道原则)

1. 单一指责原则

该原则提出对象不应该承担太多职责,如果一个对象承担了太多的职责,至少存在以下两个缺点:
一个职责的变化可能会削弱或者抑制这个类实现其他职责的能力;
当客户端需要该对象的某一个职责时,不得不将其他不需要的职责全都包含进来,从而造成冗余代码或代码的浪费。

优点

  • 降低类的复杂度。一个类只负责一项职责,其逻辑肯定要比负责多项职责简单得多。
  • 提高类的可读性。复杂性降低,自然其可读性会提高。
  • 提高系统的可维护性。可读性提高,那自然更容易维护了。

2. 接口隔离原则

客户端不需要依赖他不需要的接口,可以使用多个隔离的接口,选择性的依赖,它强调降低依赖,降低耦合。
在这里插入图片描述
调整后
在这里插入图片描述

3.依赖倒转原则

核心是面向接口编程,依赖于抽象而不依赖于具体

4. 里氏替换原则

所有使用基类的地方必须可以透明的使用子类(子类尽量不要重写父类的方法)。
继承实际上让两个类的耦合性增强,可以让原有的子类和父类继承一个通俗的父类,原来的继承关系去掉,通过聚合,组合,依赖来解决问题。
在这里插入图片描述
解决方案:
在这里插入图片描述
在这里插入图片描述

5. 开闭原则

对扩展开放,对修改关闭。
其含义是说一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化。

修改

可以分为两个层次来分析。一个层次是对抽象定义的修改,如对象公开的接口,包括方法的名称、参数与返回类型。
1.我们必须保证一个接口,尤其要保证被其他对象调用的接口的稳定。下面的案例很明显示例2比示例1更加稳定。

//定义1  
bool Connect(string userName, string password, string ftpAddress, int port);  
//定义2  
bool Connect(Account account);  

2.另一个层次是指对具体实现的修改。"对修改封闭"是开放封闭原则的两个要素之一。原则上,要做到避免对源代码的修改。这是因为具体实现的修改,可能会给调用者带来意想不到的结果,如果确实需要修改具体的实现,就需要做好达到测试覆盖率要求的单元测试。,其核心指导原则就是封装与充分的测试。

扩展

对象的多态则保证了这种扩展的开放性
由于我们对扩展实现了开发,才能保证对修改的关闭。开放利用了对象的抽象,封闭则在一定程度上利用了封装。最佳的做法仍然是要做到分离对象的变与不变,将对象不变的部分封装起来,并遵循良好的设计原则以保障接口的稳定;至于对象中可能变的部分,则需要进行抽象,以建立松散的耦合关系。

优点:

  • 帮助缩小逻辑粒度,以提高可复用性;
  • 可以使维护人员只扩展一个类,而非修改一个类,从而提高可维护性;

6. 迪米特法则(最少知道原则)

核心是降低类之间的耦合。

案例分析:https://blog.csdn.net/benbenxiongyuan/article/details/24021039

最后

以上就是火星上滑板为你收集整理的设计模式六大原则1. 单一指责原则2. 接口隔离原则3.依赖倒转原则4. 里氏替换原则5. 开闭原则6. 迪米特法则(最少知道原则)的全部内容,希望文章能够帮你解决设计模式六大原则1. 单一指责原则2. 接口隔离原则3.依赖倒转原则4. 里氏替换原则5. 开闭原则6. 迪米特法则(最少知道原则)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部