`
zl378837964
  • 浏览: 189682 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

24设计模式 之 五项设计原则(SOLID)

阅读更多
总所周知
设计模式(原则)对于设计出高扩展性、可复用性、易维护性的软件起到很大的作用。

 

常说的SOLID五大设计原则指的就是: 

    S  = 单一职责原则 Single Responsibility Principle 

    O = 开放闭合原则 Opened Closed Principle  

    L  = Liscov替换原则 Liscov Substitution Principle 

    I   = 接口隔离原则 Interface Segregation Principle 

    D = 依赖倒置原则 Dependency Inversion Principle 

    

具体如下:

 

1. 单一职责原则 

       引起类变化的因素永远不要多于一个,或者说:一个类有且只有一个职责。 

如果类包含多个职责,代码会变得耦合;SRP看起来是把事物分离成分子部分,以便于能被复用和集中管理,这点也同样适用于方法级别。 

 

2. 开放封闭原则 

       软件实体(类,模块,函数等)应当对扩展开放,对修改闭合。 

  

(关于对外关联接口或抽象类 )

   

3.Liskov’s 替换原则 

        子类型必须能够替换它们基类型,或者说使用基类引用的函数必须能使用继承类的对象而不必知道它。 

 为什么LSP这么重要: 

I.  如果没有LSP,类继承就会混乱;如果子类作为一个参数传递给方法,将会出现未知行为; 

II. 如果没有LSP,适用与基类的单元测试将不能成功用于测试子类;

 

4. 接口分离原则 

       客户端不应该被迫依赖于它们不用的接口 ;接口应该只包含必要的方法,而不该包含其它的。

比如: 

       注意到IBird接口包含很多鸟类的行为,包括 fly() 行为.现在如果一个Bird类(如 Ostrich鸵鸟)实现了这个接口,那么它需要实现不必要的 fly() 行为(Ostrich 不会飞)。这个”胖接口”应该拆分未两个不同的接口,IBird和IFlyingBird,IFlyingBird继承自IBird。这里如果一种鸟不会飞(如Ostrich),那它实现IBird接口。如果一种鸟会飞(如 Sparrow麻雀),那么它实现IFlyingBird。

    

 5. 依赖倒置原则 

         高层模块不应该依赖底层模块,两者都应该依赖其抽象。 

 比如说一个汽车类,应该依赖于接口,必须写成IEngine eg; : 

 class Car{ 

    ChinaEnginee eg;   // 此处不对

 } 

 如果代码中不用依赖倒置,我们将面临如下风险: 

I.   使用低级类会破环高级代码; 

II.  当低级类变化时需要很多时间和代价来修改高级代码; 

III. 产生低复用的代码; 

       

除此SOLID五项原则外,还有其它的面向对象原则。

例如:

组合替代继承: 相对于继承,要更倾向于使用组合; 

笛米特法则: 你的类对其它类知道的越少越好; 

共同封闭原则: 相关类应该打包在一起; 

稳定抽象原则: 类越稳定,越应该由抽象类组成;;

 

原文链接: http://zl378837964.iteye.com/blog/2333275

分享到:
评论

相关推荐

    设计模式之里氏转换原则

    里氏转换原则(Liskov Substitution Principle,简称LSP)是面向对象设计的基本原则之一,它是SOLID原则中的L原则。这个原则是由Barbara Liskov在1987年提出的,它规定子类型必须能够替换它们的基类型,而不影响程序...

    设计模式之开放封闭原则

    开放封闭原则(Open-Closed Principle,OCP)由Bertrand Meyer在1988年提出,是面向对象设计的五大原则(SOLID)之一。该原则规定,软件实体(如类、模块或函数)应当对扩展开放,对修改封闭。这意味着当需求变化时...

    设计模式的杰作:深入设计模式

    SOLID是一组五个设计原则的缩写,这些原则旨在帮助开发者创建易于维护和扩展的软件系统。《深入设计模式》详细阐述了这五个原则: - **S: 单一职责原则(Single Responsibility Principle, SRP)**:一个类应该只有一...

    了解SOLID设计原则和JAVA设计模式的代码示例.zip

    在软件开发领域,SOLID设计原则和Java设计模式是构建可维护、可扩展且高效代码的基础。SOLID代表Single Responsibility Principle(单一职责原则)、Open-Closed Principle(开闭原则)、Liskov Substitution ...

    android框架设计模式和设计原则

    在Android开发领域,深入理解框架设计模式和设计原则是提升专业技能的关键步骤。设计模式是软件工程中的经验总结,它们是解决常见问题的有效方案。设计原则则是指导我们编写高质量、可维护代码的准则。以下是对这些...

    24中设计模式介绍与6大设计原则

    这个主题涵盖了24种设计模式和6大设计原则,这些都是构建高质量、可维护和可扩展的软件系统的关键要素。 首先,我们来看看6大设计原则,它们是SOLID原则,即单一职责原则(Single Responsibility Principle, SRP)...

    24种设计模式介绍与6大设计原则.rar

    本资源“24种设计模式介绍与6大设计原则.rar”是一个关于Java编程中设计模式和设计原则的详细教程,尤其对初学者和有经验的开发者都有很高的学习价值。 首先,我们来深入探讨一下设计模式。设计模式是在特定上下文...

    设计模式课程设计模板

    3. **设计原则**:学习设计模式前,理解SOLID原则是必要的。SOLID代表单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则是指导良好设计的基础,有助于写出更灵活、可维护的代码。 4. **...

    《java设计模式》课后习题模拟试题解答——刘伟.zip

    5. **设计原则**:结合SOLID原则(单一职责、开闭原则、里氏替换、接口隔离和依赖倒置),分析如何通过设计模式实现这些原则。 通过解答课后习题和模拟试题,学生不仅能深入理解设计模式的精髓,还能提升分析问题和...

    head first 设计模式 PDF电子书下载

    同时,书中也提到了 SOLID 原则,这五项原则分别是单一职责原则(Single Responsibility Principle, SRP)、开闭原则(Open-Closed Principle, OCP)、里氏替换原则(Liskov Substitution Principle, LSP)、接口...

    设计原则和设计模式.md

    5大设计原则:SOLID S 单一职责原则 O 开放封闭原则 L 李氏置换原则 I 接口独立原则 D 依赖倒置原则

    设计模式6大原则.zip

    在面向对象设计中,有六条核心原则,它们是所有设计模式的基础,可以帮助开发者创建灵活、可维护和可扩展的代码。这六条原则统称为SOLID原则,即单一职责原则(Single Responsibility Principle, SRP)、开闭原则...

    java设计模式与原则demo

    首先,我们要了解的是六项设计原则,它们是SOLID原则的缩写: 1. 单一职责原则(Single Responsibility Principle, SRP):一个类应该只有一个引起它变化的原因,也就是说,一个类只做一件事情。 2. 开放封闭原则...

    .NET设计模式精选.pdf

    - 第2章对设计模式进行了解构,帮助读者了解模式背后的设计原则,例如面向对象的SOLID原则。 **第二部分:***应用程序的架构** - 第3章讲述了如何分层应用程序,并且分离关注点,这是构建可扩展和易于维护的***...

    C#设计模式(PDF)

    此外,这本书可能还会涵盖一些现代设计原则和实践,如SOLID原则(单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则),以及面向切面编程(AOP)的概念,这些都对提升软件设计的质量有着重要作用。...

    设计模式 刘伟 ppt

    第二章《面向对象设计原则》中,刘伟老师讲解了 SOLID 原则,包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)以及依赖倒置原则(DIP)。这些原则指导我们如何编写易于扩展和...

    设计模式定义与设计原则1

    标题中的"设计模式定义与设计原则1"暗示了我们将讨论设计模式的基础概念和设计原则。其中提到的单一职责原则是面向对象设计的基本原则之一,也是SOLID原则的首字母缩写。SOLID代表: 1. 单一职责原则(Single ...

    设计模式入门指导

    在设计模式的学习中,SOLID原则是重要的指导思想,它包含了五个面向对象设计的基本原则: - 单一职责原则(Single Responsibility Principle, SRP):一个类应该只有一个引起它变化的原因。 - 开闭原则(Open/Closed...

    java设计模式(第二版)(含源代码)

    同时,可能会讨论到如何结合设计模式和面向对象的设计原则来实现高质量的软件系统。 总的来说,"Java设计模式(第二版)"是一本对初学者和有经验的开发人员都极具价值的资源,它不仅提供了丰富的设计模式理论知识,还...

    java设计模式.pdf

    在Java中,设计模式的应用不仅限于提高代码质量,还对实现面向接口的编程、遵循SOLID原则(单一职责、开闭、里氏替换、接口隔离和依赖倒置)有重要作用。例如,工厂模式可以帮助我们遵循开放/封闭原则,让代码对扩展...

Global site tag (gtag.js) - Google Analytics