「Android设计模式之旅」——设计模式的6大原则

简介: 版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/57532087 ...
版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/57532087

前言

       已经很久没有写博客了,今天开始继续学习Android的23种设计模式,首先在学习设计模式之前我们得先了解设计模式的六大基本原则——单一SRP(单一指责原则)、OCP(开闭原则)、LSP(里氏替换原则)、DIP(依赖倒置原则)、ISP(接口隔离原则)、LOD(迪米特原则)。

1、单一职责原则

     单一职责原则的英文名称是Single Responsibility Principle,缩写是SRP。单一职责原则的定义顾名思义就是:“就一个类而言,引起它变化的原因只有一个。” 通俗的说就是‘一个类只负责做一件事’。这个“单一”的划分界限并不是说那么明显,但是,如果是两个完全不一样的功能就不能放在同一个类之中。

2、开闭原则

      开闭原则的英文名称是Open Close Principle,缩写是OCP。开闭原则的定义是:“软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是对于修改是封闭的。”我的理解是提倡我们实现继承,已经存在的实现类关闭修改,不让我们去修改,但是新的类我们可以通过继承重写父类的接口来修改。这个原则可以使我们的项目更加稳定并且灵活。当我们的软件需要更新升级时,我们尽量通过扩展的方式来实现变化,而不是修改原有的代码,否则很容易在原有的代码中引入新的bug。

3、里氏替换原则

      里氏替换原则的英文名称是Liskov Substitution Principle,缩写是LSP。里氏替换原则说白了就是“抽象”。它的定义是:所有使用基类的地方都必须能透明地使用其子类的对象。也就是说,所有父类出现的地方都可以用其子类来替换,并且不能产生任何的异常和错误。

     我们可以发现开闭原则和里氏替换原则的核心都是抽象,抽象依赖于继承所以说,这两个原则的核心还是继承。继承是OOP(Object Oriented Programming,面向对象编程)的三大基本特点(继承,多态,封装)之一。在OOP中继承的优缺点比较明显,优点当然是代码的可扩展性高,缺点就是所有子类必须拥有父类的属性和方法,这就会造成代码冗余,灵活性降低。

4、依赖倒置原则

     依赖倒置原则的英文全称是 Dependence Inversion Principle,缩写是DIP。依赖倒置原则指代了一种特定的解耦形式,使得高层次的模块不依赖于低层次的模块实现的细节的目的,依赖模块被颠倒了。

    依赖倒置原则的几个关键点:

     (1)高层次模块不应该依赖于低层次的模块,两者都应该依赖齐抽象。

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

     (3)细节应该依赖抽象。

感觉怎么说都有点枯燥难懂,在Java语言中的表现就是:“模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象产生的”。

5、接口隔离原则

接口隔离原则的英文全称是 Interface Segregation Principles,缩写是ISP。ISP的定义有两种:

1、客户端不应该依赖他不需要的接口

2、类间的依赖应该建立在最小的接口上。

接口隔离原则的目的是系统解开耦合,从而容易重构、更改和重新部署。也就是说让客户端的接口经可能的小。

6、迪米特原则

 迪米特原则的英文全称是 Law of Demeter,缩写是LOD,也称为最少知识原则(Least Knowledge Principle),定义是: 一个对象应该对其他对象有最少的了解。通俗得讲,一个类应该对自己需要耦合或调用的类知道得最少,类的内部如何实现与调用者或依赖者没关系,调用者或依赖者只需要知道自己需要调用的方法即可,其他可一概不管。

总结

   读完这一章显然感觉这一章的六大原则的核心都是“抽象”,第一次认识到抽象在代码编写中的重要性。

参考文献

《Android源码设计模式解析与实战》   何红辉 关爱民 著。


相关文章
|
7月前
|
设计模式 前端开发 Java
设计模式之六大基本原则
设计模式之六大基本原则
57 0
|
6天前
|
设计模式 Java 程序员
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
本系列文章聚焦于面向对象软件设计中的设计模式,旨在帮助开发人员掌握23种经典设计模式及其应用。内容分为三大部分:第一部分介绍设计模式的概念、UML图和软件设计原则;第二部分详细讲解创建型、结构型和行为型模式,并配以代码示例;第三部分通过自定义Spring的IOC功能综合案例,展示如何将常用设计模式应用于实际项目中。通过学习这些内容,读者可以提升编程能力,提高代码的可维护性和复用性。
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
|
4月前
|
设计模式
设计模式七大原则
这篇文章介绍了设计模式中的七大原则,特别强调了单一职责原则,即一个类应该只有一个引起其行为变化的原因,以确保类功能的高内聚和低耦合。
|
4月前
|
设计模式 存储 前端开发
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
React开发设计模式及原则概念问题之自定义Hooks的作用是什么,自定义Hooks设计时要遵循什么原则呢
|
6月前
|
设计模式 供应链
设计模式六大原则之迪米特法则
设计模式六大原则之迪米特法则
|
6月前
|
设计模式
设计模式六大原则之依赖倒置原则
设计模式六大原则之依赖倒置原则
|
3月前
|
设计模式 Java 关系型数据库
设计模式——设计模式简介和七大原则
设计模式的目的和核心原则、单一职责原则、接口隔离原则、依赖倒转原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则
|
4月前
|
设计模式 算法 开发者
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决
设计模式问题之最小知识原则(迪米特法则)对代码设计有何影响,如何解决
|
4月前
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
React开发设计模式及原则概念问题之什么是HOC(Higher-order component),HOC遵循的设计原则都有哪些
|
4月前
|
设计模式 前端开发 JavaScript
React开发设计模式及原则概念问题之什么是设计模式,单一职责原则如何理解
React开发设计模式及原则概念问题之什么是设计模式,单一职责原则如何理解