`

面向对象三大原则

 
阅读更多

单一职责原则(SRP)                                            

就一个类而言,应该仅一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受到意想不到的破坏。软件设计真正要做的许多内容,就是发现职责并把那些职责互相分离。如果你能够想到多余一个动机去改变一个类,那么这个类就具有多余一个的职责。

开闭原则                                                                 

开发-封闭原则,是说软件实体(类、模块、函数等)应该可以扩展,但是不能修改。这个原则实质就是两个特征:对于扩展是开放的,对于更改是封闭的。但,无论模块式多么的‘封闭’,都会存在一些无法对之封闭的变化。既然不可能完全封闭,设计人员必须对于他设计的模块应该对哪种变化封闭做出选择。他必须先猜测出最有可能发生的变化种类,然后构造抽象来隔离那些变化。

在我们最初编写代码时,假设变化不会发生,当变化发生时,我们就创建抽象来隔离以后法发生的同类变化。面对需求,对程序的改动是通过增加新代码进行的,而不是更改现有代码。开闭原则是面向对象设计的核心所在,遵循这个原则可以带来面向对象技术所声称的巨大好处,也就是可维护、可扩展、可复用、灵活性好。开发人员应该仅对程序中呈现出频繁变化的那些部分做出抽象,然而,对于应用程序中的每个部分都刻意地进行抽象同样不是一个好主意。拒绝不成熟的抽象和抽象本身一样重要。

依赖倒转原则                                                          

依赖倒转原则:抽象不应该依赖细节,细节应该依赖于抽象————针对接口编程,不要针对实现编程。

  • 高层模块不应该依赖底层模块。两个都应该抽象。
  • 抽象不应该依赖细节,细节应该依赖抽象。
分享到:
评论

相关推荐

    c#面向对象三原则

    c#面向对象三原则

    面向对象的三大特性五项原则

    面向对象的三大特性五项原则

    Java设计模式02面向对象设计原则

    Java设计模式02面向对象设计原则

    23种 设计模式---面向对象的基本原则

    NULL 博文链接:https://hudeyong926.iteye.com/blog/779070

    Java面向对象程序设计杨晓燕面向对象基本原则和模式.pptx

    第1页/共30页 Java面向对象程序设计杨晓燕面向对象基本原则和模式全文共30页,当前为第1页。 类的UML图 UML类图显示类的三个组成部分,第一是Java中定义的类名,第二个是该类的属性,第三个是该类提供的方法。 第一...

    面向对象软件架构设计

    第二单元:技术架构视图─面向对象程序设计原则与模式 59 用GRASP模式指导设计 62 领域模型 96 面向对象设计的基本原则 132 第三单元:用UML辅助系统分析与设计 177 UML简介及常见疑难问题辨析 178 借鉴RUP的UML建模...

    面向对象设计三要素五原则六视点

    面向对象三要素 封装(Encapsulation) 继承(Inheritance) 多态(Polymorphism) 面向对象六视点 复用(Reusibility) 扩展(Extensibility) 分离(Separability) 面向对象五原则 单一职责原则(SRP) ...

    Java与面向对象程序设计

    可以快速学习到Java语言的精髓,和面向对象程序设计的原则和思想

    C# 面向对象的基本原则

    C#面向对象的基本原则 一、面向接口编成而不是实现 [Code to an interface rather than to an implementation.] 二、优先使用组合而非继承 [Favor Composition Over Inheritance.] 三、SRP: The single ...

    Java面向对象程序设计(清华版)压缩卷3

    本书综合介绍了Java语言编程技术和面向对象程序设计两部分内容,在讲授Internet上最流行的编程语言Java的同时,还介绍了它所采用的面向对象技术的基础理论、主要原则和思维方法。本书内容翔实全面,涵盖了从基本概念...

    JAVA面向对象详细资料

    25 面向对象三大特性:多态(核心) 34 25.1 多态的前提? 35 25.2 什么是多态? 35 25.3 父类的引用指向子类实例时,父类引用可以调用哪些方法? 35 26 引用类型的自动类型与强制类型转换 36 27 多态的应用 37 27.1 ...

    php面向对象编程.doc

    3.1 面向对象基础知识 面向对象编程(Object Oriented Programing,OOP)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或...面向对象编程的三大基本要素是:继承,封装,多态。

    戏说面向对象程序设计

    四大发明之活字印刷——面向对象思想的胜利 第一章............面试受挫——代码无错就是好? 第二章............代码规范、重构 第三章............复制VS复用 第四章.......

    Java面向对象程序设计(清华版)压缩卷1

    本书综合介绍了Java语言编程技术和面向对象程序设计两部分内容,在讲授Internet上最流行的编程语言Java的同时,还介绍了它所采用的面向对象技术的基础理论、主要原则和思维方法。本书内容翔实全面,涵盖了从基本概念...

    面向对象三大特性的意义讲解

    前几天在youtube上看了Bob大叔讲解的SOLID原则,其中有一段提到面向对象的三大特性,收获很多,但是我并不完全赞同他的观点,这里谈谈我的想法: 封装 『封装』第一层含义是信息隐藏。这是教科书里都会讲解的,把类...

    什么是面向对象的程序设计

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP达到了软件工程的三个主要目标:...

    面向对象设计原则和23个设计模式的笔记

    面向对象设计原则和23个设计模式的笔记: 面向对象的三个特征的个人理解; 面向对象的核心的6个设计原则的个人理解; 四人帮的23个设计模式的个人理解; 绝对原创,绝对经典.给大家共享下.

    面向对象软件架构设计.ppt

    第二单元:技术架构视图─面向对象程序设计原则与模式 59 用GRASP模式指导设计 62 领域模型 96 面向对象设计的基本原则 132 第三单元:用UML辅助系统分析与设计 177 UML简介及常见疑难问题辨析 ...

    C++面向对象程序设计课件

    面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。 面向对象编程(Object Oriented Programming,OOP,面向对象...

    PHP_面向对象教程(强力推荐).pdf

    面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程 架构,OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成,OOP 达到了软件工程的三个目标:...

Global site tag (gtag.js) - Google Analytics