Java面向对象六大原则

引自百度知道:

1) Open-Close Principle(OCP),开-闭原则,讲的是设计要对扩展有好的支持,而对修改要严格限制。这是最重要也是最为抽象的原则,基本上我们所说的Reusable Software既是基于此原则而开发的。其他的原则也是对它的实现提供了路径。

2) Liskov Substituition Principle(LSP),里氏替换原则,很严格的原则,规则是“子类必须能够替换基类,否则不应当设计为其子类。”也就是说,子类只能去扩展基类,而不是隐藏或覆盖基类.3) Dependence Inversion Principle(DIP),依赖倒置原则,“设计要依赖于抽象而不是具体化”。换句话说就是设计的时候我们要用抽象来思考,而不是一上来就开始划分我需要哪些哪些类,因为这些是具体。这样做有什么好处呢?人的思维本身实际上就是很抽象的,我们分析问题的时候不是一下子就考虑到细节,而是很抽象的将整个问题都构思出来,所以面向抽象设计是符合人的思维的。另外这个原则会很好的支持OCP,面向抽象的设计使我们能够不必太多依赖于实现,这样扩展就成为了可能,这个原则也是另一篇文章《Design by Contract》的基石。

4) Interface Segregation Principle(ISP),“将大的接口打散成多个小接口”,接口隔离原则这样做的好处很明显,我不知道有没有必要再继续描述了,为了节省篇幅,实际上我对这些原则只是做了一个小总结,如果有需要更深入了解的话推荐看《Java与模式》,MS MVP的一本巨作!^_^

5) Composition/Aggregation Reuse Principle(CARP),设计者首先应当考虑复合/聚合,而不是继承(因为它很直观,第一印象就是“哦,这个就是OO啊”)。这个就是所谓的“Favor Composition over Inheritance”,在实践中复合/聚合会带来比继承更大的利益,所以要优先考虑。

6) Law of Demeter or Least Knowlegde Principle(LoD or LKP),迪米特法则或最少知识原则,这个原则首次在Demeter系统中得到正式运用,所以定义为迪米特法则。它讲的是“一个对象应当尽可能少的去了解其他对象”。也就是又一个关于如何松耦合(Loosely-Coupled)的法则。
时间: 2024-10-13 23:31:58

Java面向对象六大原则的相关文章

Java设计模式之——面向对象六大原则

面向对象六大原则: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):开闭原则 设计模式六大原则(3):里氏替换原则 设计模式六大原则(4):依赖倒置原则 设计模式六大原则(5):接口隔离原则 设计模式六大原则(6):迪米特原则 设计模式六大原则(1):单一职责原则 单一职责原则的英文名称是 Single Responsibility Principle,缩写为 SRP.SRP 的定义是:就一个类而言,应该仅有一个引起它变化的原因.简单来说,一个类中应该是一组相关性很高的函数.数据的

公共技术点之面向对象六大原则

概述 在工作初期,我们可能会经常会有这样的感觉,自己的代码接口设计混乱.代码耦合较为严重.一个类的代码过多等等,自己回头看的时候都觉得汗颜.再看那些知名的开源库,它们大多有着整洁的代码.清晰简单的接口.职责单一的类,这个时候我们通常会捶胸顿足而感叹:什么时候老夫才能写出这样的代码! 在做开发的这些年中,我渐渐的感觉到,其实国内的一些初.中级工程师写的东西不规范或者说不够清晰的原因是缺乏一些指导原则.他们手中挥舞着面向对象的大旗,写出来的东西却充斥着面向过程的气味.也许是他们不知道有这些原则,也许

Java设计模式六大原则-2

Java设计模式六大原则-2 做Java程序开发的每天都在使用JDK,Spring,SpringMvc,Mybatis,Netty,MINA等框架,但很少有人懂得背后的原理.即使打开跟下原码也是一头雾水,很虐心,最后还是回到使用上,为什么?难道他们不想了解吗?当然不是,是因为真心看不懂,当时我工作5年,大大小小的项目做了数不清,但是看这些背后的原理根本就看不懂,或者懂一点,其它全是疑问,最终被虐的也不得不放弃. 因为自己不满足搬砖的,所以还是下定决心要了解各大框架背后的原理.从认识到这个问题后第

Java面向对象设计原则

面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton.Decorator.Observer这样的设计模式,而不重视面向对象的分析和设计.甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程. 众所周知,Java编程最基本的原则就是要追求高内聚和低耦合的解决方案和代码模块设计.查看Apac

工程师的基本修养 — 面向对象六大原则介绍

首先简单说下面向对象.软件在机器中运行,用来解决实际问题,解决一个问题一定有先后顺序,只要把问题拆解开,然后一件一件的顺序完成,问题大都可以解决,这就是面向过程的编程. 但是对于更加复杂的模型,如果继续使用面向过程的编程,一些程序就会变得不容易控制了.为了更好解决问题,需要对这个世界进行抽象,把一个任务.一个程序拆分成更容易控制和理解的小块,小块间定义好使用原则等,然后在大块中,用逻辑把所有模块都运行起来,有相同特性的模块可以通过继承去更好的管理,还可以定义一些接口约束,让模块都具有同样的外观,

java设计模式六大原则

目录: 设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大原则(6):开闭原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障. 解决方案

深入讲解 JAVA 设计模式六大原则——SOLID

SOLID设计模式的六大原则有: Single Responsibility Principle:单一职责原则Open Closed Principle:开闭原则Liskov Substitution Principle:里氏替换原则Law of Demeter:迪米特法则Interface Segregation Principle:接口隔离原则Dependence Inversion Principle:依赖倒置原则把这六个原则的首字母联合起来( L 算做一个)就是 SOLID (solid

Java设计模式六大原则之场景应用分析

定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责. 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障. ??解决方案:遵循单一职责原则.分别建立两个类T1.T2,使T1完成职责P1功能,T2完成职责P2功能.这样,当修改类T1时,不会使职责P2发生故障风险:同理,当修改T2时,也不会使职责P1发生故障风险. ??说到单一职责原则,很多人都会不屑一顾.因为它太简单了.稍有经验的程

面向对象六大原则-含具体实例

1.优化代码的第一步——单一职责原则 单一职责原则的英文名称是Single Responsibility Principle,简称SRP.它的定义是:就一个类而言,应该仅有一个引起它变化的原因.简单来说,一个类中应该是一组相关性很高的函数.数据的封装.就像秦小波老师在<设计模式之禅>中说的:“这是一个备受争议却又及其重要的原则.只要你想和别人争执.怄气或者是吵架,这个原则是屡试不爽的”.因为单一职责的划分界限并不是总是那么清晰,很多时候都是需要靠个人经验来界定.当然,最大的问题就是对职责的定义