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

OOD原则

 
阅读更多

单一职责原则(SRP

就一个类而言,应该仅有一个引起它变化的原因。

 

开放-封闭原则(OCP

软件实体(类、模块、函数等等)应该是可以扩展的,但是不可修改的。

 

1、  对于扩展是开放的

这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为。

2、  对于更改是封闭的

对模块的行为进行扩展时,不必改动模块的源代码或者二进制代码。

 

OCP背后的主要机制是抽象与多态!

 

Liskov替换原则(LSP

子类型必须能够替换掉它们的基类型。

 

简单的例子:

 

违反LSP原则的例子

    public void saysomething(Language lan){

       String tempStr = "";

       if(lan instanceof Chinese){

           tempStr = "中文";

       }

       if(lan instanceof English){

           tempStr = "英文";

       }

      

       System.out.println("现在你学习的语言是:"+tempStr);

    }

因为如果传递到saysomething方法中的Language是一个Japanese对象时,它将无法处理!

 

 

要让它符合LSP也非常简单:

public abstract class Language {

    public abstract String toString();

}

 

public class Chinese extends Language{

 

    @Override

    public String toString() {

       return "中文";

    }

 

}

 

public class English extends Language{

 

    @Override

    public String toString() {

       return "英语";

    }

 

}

 

    public void saysomething(Language lan){

       System.out.println("现在你学习的语言是:"+lan.toString());

    }

在这种情况下,可以随意定义Language的子类,并传递到saysomething方法,不会有任何问题。

 

依赖倒置原则(DIP

A、高层模块不应该依赖于底层模块。二者都应该依赖于抽象。

B、 抽象不应该依赖于细节。细节应该依赖于抽象。

 

接口隔离原则(ISP

不应该强迫客户依赖于它们不用的方法。(避免“胖”接口)

0
2
分享到:
评论
1 楼 wangking717 2010-12-07  
写得很好很不错,受用了。

相关推荐

    OOD原则 GRASP GOF

    **OOD原则:面向对象设计(Object-Oriented Design)原则** 面向对象设计是软件开发中的一种重要方法,它强调将现实世界中的实体转化为程序中的类和对象,通过封装、继承和多态等特性来实现软件的模块化和可扩展性...

    OOD设计基本原则整理.doc

    "OOD设计基本原则整理" OOD 设计基本原则之一:开-闭原则 开-闭原则是 OOD 设计的核心原则之一,该原则强调一个软件实体应当对扩展开放,对修改关闭。也就是说,在设计一个软件实体的时候,应当使这个软件实体可以...

    面向对象设计OOD 面向对象设计OOD

    OOD 面向对象设计原则与实践 面向对象设计(OOD)是一种软件设计方法,旨在提高软件系统的灵活性、可维护性和可扩展性。OOD 的核心是面向对象设计原则(OOD principles),其中包括单一职责原则(SRP)、开闭原则...

    OOD.rar_ood

    **对象导向设计(Object Oriented Design,OOD)** 对象导向设计是软件开发中的一种核心方法,它基于面向对象编程(Object-Oriented ...在实际项目中,合理运用OOD原则和技巧,能够提升软件开发的效率和质量。

    Uncle Bob OOD Principles

    本文将深入探讨Uncle Bob提出的OOD原则,以及这些原则在C++编程中的应用。** 1. **单一职责原则(Single Responsibility Principle, SRP)**:每个类或模块应该只有一个改变的原因。这意味着一个类应专注于一个特定...

    软件设计的七大原则(OOD)

    软件设计的七大原则(OOD) software设计的七大原则是指在软件设计中遵守的一些基本原则,以提高软件的可复用性、灵活性、可扩展性和可维护性。其中包括SRP(单一职责原则)、OCP(开闭原则)、LSP(里氏替换原则)...

    OOD设计基本原则 面向对象设计必备

    OOD 设计基本原则包括 OCP 原则、里氏替换原则、依赖倒置原则、接口隔离原则、聚合与继承原则、单一职责原则、Separation of concerns Principle 和 Pareto Principle 等。 OCP 原则(Open-Closed Principle)是 ...

    如何解释OOD及设计

    面向对象设计(OOD)是面向对象编程(OOP)的进一步发展,OOP提供了封装、继承和多态等基本原则,而OOD则侧重于如何高效、合理地组织这些原则,以创建模块化、可复用和灵活的软件架构。OOD的目标是确保软件能够适应...

    c# OOP/OOD

    OOD的原则包括: 1. **SOLID原则**:SOLID是五个面向对象设计原则的首字母缩写,包括单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则指导我们编写可维护、可扩展的代码。 2. **设计...

    OOD启思录 高清pdf

     全书共11章,总结出了60多条面向对象设计(OOD)的指导原则。这些经验原则涵盖了从类到对象(主要强调它们之间的关系,包括关联、使用、包含、单继承、多继承)到面向对象物理设计的重要主题。本书将帮助你理解经验...

    信息系统项目管理师第四版教程真题

    OOD 原则中,迪米特原则是一个对象应当对其他对象有尽可能少的了解,该原则与结构优化方法的低藕合原则是一致的。 10. 数据容灾与数据备份 数据容灾是指在系统崩溃或灾难发生时能够恢复数据或系统,数据备份是数据...

    新软件建模技术(共75张PPT).pptx

    新软件建模技术是软件开发领域中...总的来说,新软件建模技术涵盖了从需求收集到软件实现的全过程,强调使用UML等工具进行可视化建模,遵循OOD原则,采用迭代和敏捷方法来应对复杂性和不确定性,以确保软件开发的成功。

    OOD启思录(高清)

    8. ** SOLID原则**:SOLID是面向对象设计的五个基本原则,包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP)。这些原则指导我们编写易于维护和扩展的代码...

    UML for Java Programmers中文版

    OOD原则是设计高质量、可维护软件的关键。本章系统地介绍了单一职责原则(SRP)、开放-封闭原则(OCP)、Liskov替换原则(LSP)、依存关系倒置原则(DIP)、接口隔离原则(ISP)等核心原则。遵循这些原则,可以帮助...

    2023年上半年信息系统项目管理师真题(上午综合知识)

    9. 在常用的 OOD 原则中,迪米特法则是一个对象应当对其他对象有尽可能少的了解,该原则与结构优化方法的低耦合原则是一致的。 10. 数据备份是数据容灾的基础,二者的目的都是为了在系统崩溃或灾难发生时能够恢复...

    高项考试真题解析.pdf

    本题考查OOD原则中的迪米特原则及其与结构化方法中的P耦合原则的关系。迪米特原则提倡减少对象之间的耦合度,与结构化方法中的P耦合原则一致。 #### 十、数据备份与数据容灾的关系 **知识点:** 数据备份是数据...

    《C++程序设计-现代方法》-PPT.zip

    "chp11-OOD原则.pptx"可能专门讨论面向对象设计的原则,如单一职责原则、开闭原则、里氏替换原则等,这些原则指导开发者写出高质量、易于维护的代码。 最后,"chp12-C++程序设计案例.pptx"会通过实际的编程例子来...

    OOD面试应对方法 SOLID原则.mp4

    S - Single-responsiblity principle 单一责任原则 O - Open-closed principle 开发封闭原则 L - Liskov substitution principle 里氏替换原则 I - Interface segregation principle 接口分离原则 D - Dependency ...

    如何向妻子解释面向对象设计(OOD)

    OOD不仅涵盖了面向对象编程(OOP)的基本原则,如封装、继承和多态,还涉及了更高层次的设计原则和模式,旨在提高软件的模块性、可复用性和灵活性。 ### 面向对象设计的重要性 OOD的重要性在于它能够帮助开发者...

Global site tag (gtag.js) - Google Analytics