六大基本设计原则:
1、单一职责原则
2、里氏替换原则
3、依赖倒置原则
4、接口隔离原则
5、迪米特原则
6、开闭原则
单一职责原则(Srp)
定义:应该 有且仅有一个原因引起类的变更。即单一职责原则要求一个接口或类只有一个原因引起变化,也就是一个接口或类只有一个职责,他就负责一件事情。
职责是很难定义的一个概念 ,我们把握一个度,就是合理的划分职责,不能耦合度 太强,也不能拆分的类太多。(原则是死的,人是活的)
好处:
1、类的复杂性降低,实现什么职责都有清晰明确的定义;
2、可读性提高;
3、可维护性提高;
4、变更引起的风险降低,变更是必不可少的的,如果接口的单一职责做得好,一个接口修改只对相应的实现类有影响,对其他接口无影响,这对系统的扩展性、维护性都有非常大的帮助。
里氏替换原则
定义:只要父类出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常,使用者可能根本不需要 知道父类还是子类。但是,反过来就不行了,有子类出现的地方,父类未必就能适应。
在面向对象的语言中,继承是必不可少;
继承的优点为:
1、代码共享,减少创建的类的工作量,每个子类都拥有父类的方法和属性;
2、提高代码的重用性;
3、子类可以形似父类,但又异于父类;
4、提高代码的可扩展性;
5、提高产品或者项目的开放性
缺点:
1、继承是侵入性的。只要继承,就必须拥有父类的所有属性和方法;
2、降低了代码的灵活性。子类 必须拥有父类的属性和方法,让子类的自由世界中多了些约束;
3、增强了耦合性。当父类的常量、变量和方法被修改时,需要考虑子类的修改 ,而且在缺乏规范的环境下,这种修改可能让大段2的代码需要重构;
依赖倒置原则(大项目必须)
定义:
1、高层模块不应该依赖低级模块,两者都应该依赖其抽象;
2、抽象不应该依赖细节;
3、细节应该依赖抽象;
高层模块和低级模块的定义:每一个逻辑的实现都是由原子逻辑组成的,不可分割的 原子逻辑就是低级模块,原子逻辑再组装就是高级模板;
抽象:指接口或抽象类,两者都是不能直接被实例化的;
细节:细节就是实现类,实现接口或继承抽象类而产生的类就是细节,其特点就是可以被实例化,也就是可以加上一个关键字 new产生的 一个对象。
依赖倒置原则的表现:
1、模块间的依赖 通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系就是通过接口或者 抽象类产生的 ;
2、抽象或实现类不依赖于实现类;
3、实现类依赖接口 或抽象类;
也就是面向接口编程;
依赖倒置的本质就是通过抽象(接口或抽象类),使各个类或模块实现彼此独立,不相互影响,实现真正的松耦合;
在项目中的体现:
1、每个类尽量都有接口或实现类 ,或者抽象类或接口两者都具备;
2、变量的表面类型尽量是接口或抽象类;
3、任何类都不应该从具体类派生;
4、尽量不要覆写基类的方法 ;
5、即合理实体化原则使用;
接口隔离原则
接口类型:
1、实例接口:在 Java中声明一个类,然后用new关键字产生一个实例,,他是对一个类型的事物的描述,这是一种接口;例如你定义了一个Person类,然后使用Person zhangsan = new Person();产生一个实例,这里Person类就是zhangsan 的接口;
2、类接口:Java中经常使用的interface关键字定义的接口;
隔离定义:
1、客户端不应该依赖它不需要的接口;依赖它需要的接口客户端需要什么接口就 提供什么接口,把不要的接口剔除掉,这就需要对接口进行细化,保证其纯洁性;
2、类间的依赖关系应该建立在最小的接口上;它是要求接口最小 ,也是要求接口细化,接口纯洁;
即建立单一接口,不要建立臃肿庞大的接口,通俗来讲就是接口尽量细化,同时接口中的方法尽量的少;单一职责要求的是类和接口职责单一,注重的是职责,这是业务逻辑的划分。而接口隔离原则要求的是接口的方法尽量的少,注意区分。
最佳实践:
接口隔离原则是对接口的定义,同时也是对类的定义,接口 和类尽量使用原子接口和类;
1、一个接口只服务于一个子模块或业务逻辑;
2、通过业务逻辑压缩接口中的public方法
3、已经被 污染了的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理;
4、了解环境,拒绝盲从不要盲目的模仿网上的代码,要深入了解逻辑,设计出最好的接口。
迪米特法则
定义:一个对象应该对其他对象 有最少的了解,通俗来讲,一个类应该对自己需要耦合或 调用的类知道的最少,被耦合或调用的类的内部是如何复杂和我没有关系;
1、只与直接的朋友交流:
迪米特法则的核心观念就是类间解耦,弱耦合,只有弱耦合了之后 ,类的复用率才可以提高。
开闭原则
定义:
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭;(一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化)
软件实体包括:
1、项目或软件产品中按照一定的逻辑规则划分的模块
2、抽象和类
3、方法
相关推荐
面向对象七大基本设计原则通常是指SOLID原则,它是一组面向对象设计的指导原则,旨在使软件更加可维护和可扩展。SOLID由以下五个原则组成: 1. 单一职责原则(Single Responsibility Principle, SRP):一个类应该...
在光电计量仪器设计学的发展过程中,总结并形成了一系列基本设计原则。正确掌握这些原则,将有助于所设计的仪器达到上述的质量指标。 1.2.1 阿贝(Abbe)原则 1.定义 1890年阿贝本人的叙述是:长度测量...
面向对象编程(OOP)是现代软件开发中的基础,遵循一系列设计原则可以帮助我们构建更加稳定、可维护的系统。SOLID原则是OOP设计中最重要的五个原则,它们分别是: 1. 开闭原则(Open-Closed Principle,OCP):一个...
4. **额外考虑的原则**:除了教科书中的基本设计原则,还有其他因素可能影响设计,如文化背景、社会需求、用户行为习惯等。在设计台灯时,可能还需要考虑台灯的便携性、安全性(防止触电)和耐用性等因素。 5. **...
在光电计量仪器设计学的发展过程中,总结并形成了一系列基本设计原则。正确掌握这些原则,将有助于所设计的仪器达到上述的质量指标。 1.2.1 阿贝(Abbe)原则 1.定义 1890年阿贝本人的叙述是:长度测量...
在混凝土结构设计中,理解和掌握基本设计原则至关重要。 首先,混凝土结构定义与分类主要依据结构的空间位置和力的传递关系。结构可以分为水平承重结构、竖向承重结构和地下承重结构,它们各自承担不同的荷载和应力...
数据采集系统设计原则与基本方法 数据采集系统设计原则与基本方法是数据采集系统设计的基础,掌握这些原则和方法是设计高质量的数据采集系统的关键。本文将对数据采集系统设计的基本原则和方法进行详细的解释。 一...
* 电路设计的基本设计原则 * 电路设计的设计步骤 * 电路设计的常见问题和解决方法 知识点7:电路设计的仿真和验证 * 电路设计的仿真方法 * 电路设计的验证方法 * 电路设计的仿真和验证工具 知识点8:电路设计的...
5. **SOLID原则**:这是面向对象编程中的五个基本设计原则,包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)和依赖倒置原则(DIP)。这些原则有助于创建灵活、可扩展的软件...
在进行机械设计时,遵循一系列基本原则至关重要,这些原则是设计师们智慧的结晶,也是确保设计成功的关键。 首先,以市场需求为导向的原则是机械设计的出发点。在设计之初,设计师必须深入理解目标市场的需求,分析...
首先,3W规则是关于线与线之间距离的基本设计原则。在PCB布线中,为了避免线间串扰,确保信号传输的稳定性,相邻走线之间的距离应保持至少3倍于线宽。这种设计方法能够减少线间电场的相互干扰,当线中心间距不少于3...
《光检基本原则》是关于光电检测系统设计的重要指导文件,主要涵盖了九个基本设计原则,这些原则对于确保光电系统的性能、精度和效率至关重要。以下是这些原则的详细解释: 1. 匹配原则: - 光电匹配:设计时需...
Control4创新的将家庭娱乐和自动化进行整合,通过这套强大的系统,可以让您充分享受便捷、舒适、安全的生活方式,提高生活质量。
本篇文章将详细探讨面向对象设计的基本原则,这些原则对于创建可维护、可扩展且易于理解的代码至关重要。 1. **单一职责原则 (Single Responsibility Principle, SRP)** - 这个原则指出,一个类应该只有一个引起它...
数据库索引设计原则的基本原则是确保数据库的查询效率和性能。为此,需要遵守以下几点原则: 1.1 基本原则:索引设计应遵守基本原则,即索引列的选择、索引类型的选择、索引的维护等。 1.2 主关键字的约束:主...
在面向对象编程中,设计模式基于一些基本原则,这些原则构成了良好设计的基础。本篇将深入探讨23种设计模式以及面向对象的基本原则。 面向对象的基本原则主要包括: 1. 单一职责原则(Single Responsibility ...
由于控制系统直接关系到生产效率和产品质量,其设计原则至关重要。以下是对PLC控制系统设计原则的详细解读: 首先,PLC控制系统设计的首要原则是最大限度地满足被控对象的控制要求。这需要设计人员在设计前充分了解...
介绍面向对象(OOP)的六大基本设计原则,使用markdown格式编写,使用浏览器即可查看! 让我们一起new一个对象吧~O(∩_∩)O
本文档详尽地阐述了设计规范的多个方面,包括基本设计原则、布局、字体、颜色、图标、换肤、控件标准、交互规范以及界面架构等多个部分。下面将逐一介绍这些知识点。 首先,基本设计原则涉及简约明确、一致性和操作...
层叠设计基本原则包括: 1. **元件面相邻层为地平面**:这样可以为顶层布线提供良好的回流路径,同时为元器件提供屏蔽,降低电磁干扰。 2. **信号层与地平面相邻**:特别是关键信号线,确保信号质量,减少噪声和...