index:
1,单一职责原则
2,开关原则
3,里氏替换原则
4,依赖倒置原则
5,接口隔离原则
6,迪米特法则
1.单一职责原则(策略模式):一个类或者方法只能做一件事情,
应用:在构造对象时,将对象的不同职责分离到两个到多个类中,确保引起该类变化的原因只有一个。
例子:在我们的状态模式中,每个状态都有与之相对应的行为。这就很好的体现了单一职责原则。
优点:提高内聚,减少耦合度。
缺点:可能会导致资源文件过多,而管理不便。
2.(Open-close-principle 开关原则)体现的模式:策略模式,装饰器模式,模板模式
对扩展是开放的,对修改是封闭的,即在不修改源码的情况下对其进行扩展,
我们的面向接口编程,这就有效的体现了这一原则。
比如说我们的一个项目需要进行增加一个功能。就增加一个实现类就可以。不需要修改它的源代码。
好处:提高了灵活性,可重用性,可维护性。
难点:OCP的关键是抽象父类,或者接口,创建正确的抽象发费时间和精力,也增加了软件设计的复杂性。
正确的做法:只对程序中频繁变化的做出抽象。
3.里氏替换原则(LSP)(工厂模式)
定义:用子类去替换父类。即凡是父类能够出现的地方,子类就一定能够出现,反之则不成立。
工厂模式就很好的实现了这一原则,比如说dao层,父类并不知道是生成那一个子类的对象。
而我们的子类是知道它实现的是那个接口。
这样子类替换就非常的容易。可以在无需修改的情况下进行修改。
LSP使OCP成为可能的主要原则之一,
4.依赖倒置原则:(模板模式)
定义:高层模板不依赖于底层模板,它们都应该依赖于抽象。
抽象不应该依赖于细节,细节应该依赖于抽象。
也就是说它父类不应该依赖子类的东西。
例子:拿我们项目中来说,比如说dao,和dao的实现,我们dao层不应该知道dao实现的具体的操作。
如果dao层需要修改的话,那么还会影响到dao的实现,这样耦合度就非常的高。
5.接口隔离原则:(观察者模式)
定义:不要强迫客户依赖于它们不用的方法。
让一个类对另外一个类的依赖性应当是建立在最小的接口上的。
例子:如果我们一个类需要一些方法,避免实现方法过多的接口。
作用:避免接口污染
一个接口代表一个角色,不应当将不同的角色都交给一个接口。
6.迪米特原则 (体现了门面模式)
定义:又叫最少知识原则,一个对象对其他对象应该有尽可能少的了解,这是一个送耦合的的法则。
例子:我们在程序中通常把能私有化的属性,方法,都要尽量的私有化。
这样我们修改一些模板对其他模板的影响就少些,使代码也更加安全。
我们可以使用门面模式来实现这一原则,门面模式就是隐藏子系统的复杂性。与客户程序打交道
只有一个类而已。
缺点:在系统中造出大量的小方法,管理不要方便。
分享到:
相关推荐
以下是对各个设计原则的详细说明: 1. **系统总体设计原则**: - **统一设计原则**:这强调了在设计时需全局考虑,包括应用系统结构、数据模型、存储和扩展规划,确保一致性。 - **先进性原则**:采用成熟且先进...
而对于其他模式和原则,应以类似的方式进行学习和应用,不断深入理解每个设计模式的特点和适用场景,以及设计原则的核心指导思想,最终能够在实际开发中灵活运用,编写出高质量、高内聚低耦合、易于扩展的代码。
发现了在触摸屏界面设计上存在的问题,深感触摸屏界面可用性的重要性以及在设计中人力物力投资的重复性,从而得出了为触摸屏界面提供一套通用的设计原则的必要性。 文章开篇第一章首先说明了一下研究背景...
数据库索引设计原则 数据库索引设计原则是 Oracle 数据库管理系统中的一项重要技术,旨在提高数据库的查询效率和性能。以下是数据库索引设计原则的详细解释。 一、基本原则 数据库索引设计原则的基本原则是确保...
在Android开发中,设计模式和设计原则是提升代码质量、可维护性和可扩展性的重要工具。以下是关于"Android 24种设计模式介绍与6大设计原则"的详细阐述: 一、六大设计原则 1. **单一职责原则(Single ...
这个PDF文档“24种设计模式介绍与6大设计原则”旨在帮助开发者理解和应用这些模式,提高代码的可维护性和可扩展性。以下是其中的主要内容: 一、设计原则 1. 单一职责原则:一个类或模块应只有一个引起其变化的原因...
面向对象设计原则是软件开发中不可或缺的指导方针,它们旨在提升软件的可维护性和复用性,从而提高开发效率和质量。C++作为一门支持面向对象编程的语言,遵循这些原则可以使代码更加健壮和易于扩展。以下是7个常用的...
理解并遵循EMI设计原则和电磁兼容设计原则对于提升电路板的抗干扰性能至关重要。 首先,我们要明白EMI是指由于电路中电流的变化产生的电磁场对周围环境产生的影响,这可能会影响其他电子设备的正常工作。为了减少...
面向对象设计原则是软件开发中至关重要的一环,它关乎到代码的可维护性、扩展性和复用性。本文将深入探讨这些原则,并结合实例来解释它们的重要性。 首先,我们需要理解面向对象不仅仅是编程语言中的概念,如封装、...
【HWS公有云架构设计原则】 华为公有云架构设计遵循一系列关键原则,旨在构建一个高效、灵活且可扩展的云服务环境。以下是这些原则的详细解释: 1. **开放API原则**:所有子系统,包括Portal/Console、BSS...
通过以上三个面向对象的设计原则,我们可以构建出更加健壮、灵活且易于维护的软件系统。这些原则不仅适用于特定的语言环境,而且对于所有的面向对象编程语言都有普遍的意义。理解和掌握这些原则,对于提升软件开发的...
高速PCB EMC设计的47个原则二、PCB设计原则归纳 原则1:PCB时钟频率超过5MHZ或信号上升时间小于5ns,一般需要使用多层板设计。 原因:采用多层板设计信号回路面积能够得到很好的控制。 原则2:对于多层板,关键...
在软件设计领域,设计原则是指导软件系统构建的基础法则和最佳实践,它们可以帮助开发者构建出更加灵活、可维护和可扩展的系统。在嵌入式系统开发中,这些原则同样适用,并且需要根据嵌入式环境的特殊性进行适当的...
### Web界面设计原则详解 #### 引言 Web界面设计是一项综合艺术与科学的技能,旨在创造既美观又实用的在线体验。良好的Web界面不仅能够吸引用户,还能引导他们高效地完成目标。本文将深入探讨Web界面设计的核心...
### Java设计原则详解 #### 一、基本原则与实践 **原则1:避免不必要的代码重复** 根据Arthur J. Riel的观点,在设计时应当避免代码的重复。例如在第13页提到,应尽量减少相似功能模块的重写,这有助于提高代码的...
24种设计模式介绍与6大设计原则24种设计模式介绍与6大设计原则
面向对象设计原则是软件工程领域中的重要组成部分,旨在提高软件系统的可维护性、可扩展性和灵活性。其中,类设计原则尤为关键,它们指导着开发者如何合理地构建类,以适应不断变化的需求。以下是对给定文件中提及的...
数据采集系统设计原则与基本方法 数据采集系统设计原则与基本方法是数据采集系统设计的基础,掌握这些原则和方法是设计高质量的数据采集系统的关键。本文将对数据采集系统设计的基本原则和方法进行详细的解释。 一...
设计原则和设计模式是OOD的核心概念,它们为开发者提供了指导思想和最佳实践,以创建可维护、可扩展和易于理解的代码。在Swift中,遵循这些原则和模式可以帮助我们编写出更加灵活和高效的软件。 面向对象设计的原则...