软件设计原则都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件设计原则都有哪些相关的知识,希望对你有一定的参考价值。

七大设计原则
开闭原则
依赖导倒置原则
单一职责原则
接口隔离原则
迪米特原则
里氏替换原则
合成复用原则

设计模式-创建型模式
工厂方法模式
抽象工厂模式
建造者模式
单例模式
原型模式

设计模式-结构性模式
适配器模式
装饰者模式
代理模式
外观模式
桥接模式
组合模式
享元模式

设计模式-行为型模式
策略模式
模板方法模式
观察者模式
访问者模式
迭代器模式
责任链模式
中介者模式
解释器模式
状态模式
命令模式
备忘录模式
软件设计原则介绍
所以,可以说软件系统是连接需求分析、硬件系统以及使得系统实现的桥梁,对软件的设计应首先了解软件设计的设计原则。
设计原则
(1)可靠性
软件系统的规模越做越大越加复杂,其可靠性越来越难保证。应用本身对系统运行的可靠性要求越来越高,软件系统的可靠性也直接关系到设计自身的声誉和生存发展竞争能力。软件可靠性意味着该软件在测试运行过程中避免可能发生故障的能力,且一旦发生故障后,具有解脱和排除故障的能力。软件可靠性和硬件可靠性本质区别在于:后者为物理机理的衰变和老化所致,而前者是由于设计和实现的错误所致。故软件的可靠性必须在设计阶段就确定,在生产和测试阶段再考虑就困难了。
(2)健壮性
健壮性又称鲁棒性,是指软件对于规范要求以外的输入能够判断出这个输入不符合规范要求,并能有合理的处理方式。软件健壮性是一个比较模糊的概念,但是却是非常重要的软件外部量度标准。软件设计的健壮与否直接反应了分析设计和编码人员的水平。
(3)可修改性
要求以科学的方法设计软件,使之有良好的结构和完备的文档,系统性能易于调整。
(4)容易理解
软件的可理解性是其可靠性和可修改性的前提。它并不仅仅是文档清晰可读的问题,更要求软件本身具有简单明了的结构。这在很大程度上取决于设计者的洞察力和创造性,以及对设计对象掌握得透彻程度,当然它还依赖于设计工具和方法的适当运用。
(5)程序简便
(6)可测试性
可测试性就是设计一个适当的数据集合,用来测试所建立的系统,并保证系统得到全面的检验。
(7)效率性
软件的效率性一般用程序的执行时间和所占用的内存容量来度量。在达到原理要求功能指标的前提下,程序运行所需时间愈短和占用存储容量愈小,则效率愈高。
(8)标准化原则
在结构上实现开放,基于业界开放式标准,符合国家和信息产业部的规范。
(9)先进性
满足客户需求,系统性能可靠,易于维护。
(10)可扩展性
软件设计完要留有升级接口和升级空间。对扩展开放,对修改关闭。
(11)安全性
安全性要求系统能够保持用户信息、操作等多方面的安全要求,同时系统本身也要能够及时修复、处理各种安全漏洞,以提升安全性能。
参考技术A 1.六大原则-单一职责原则
原则思想:一个方法只负责一件事情。
描述:单一职责原则很简单,一个方法 一个类只负责一个职责,各个职责的程序改动,不影响其它程序。 这是常识,几乎所有程序员都会遵循这个原则。
优点:降低类和类的耦合,提高可读性,增加可维护性和可拓展性,降低可变性的风险。
2.六大原则-里氏替换原则
原则思想:使用的基类可以在任何地方使用继承的子类,完美的替换基类。
描述:子类可以扩展父类的功能,但不能改变父类原有的功能。子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,子类中可以增加自己特有的方法。
优点:增加程序的健壮性,即使增加了子类,原有的子类还可以继续运行,互不影响。
3.六大原则-依赖倒置原则
原则思想:高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象,抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
描述:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。
优点:可以减少需求变化带来的工作量,做并行开发更加友好。

4.六大原则-接口隔离原则
原则思想:类和类之间应该建立在最小接口的上。
描述:类A通过接口依赖B,类C通过接口依赖D,如果接口类A和类B不是最小的接口,则依赖的类B和类D必须要实现他们不需要的方法。
优点:提高程序的灵活度,提高内聚,减少对外交互,使得最小的接口做最多的事情。
5.六大原则-迪米特法则
原则思想:一个对象应当对其他对象有尽可能少地了解,简称类间解耦
描述:一个类尽量减少自己对其他对象的依赖,原则是低耦合,高内聚,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。
优点:低耦合,高内聚。
6.六大原则-开放封闭原则
原则思想:尽量通过扩展软件实体来解决需求变化,而不是通过修改已有的代码来完成变化
描述:一个软件产品在生命周期内,都会发生变化,既然变化是一个既定的事实,我们就应该在设计的时候尽量适应这些变化,以提高项目的稳定性和灵活性。
优点:单一原则告诉我们,每个类都有自己负责的职责,里氏替换原则不能破坏继承关系的体系。
参考技术B 软件的设计原则就是设计一个可以执行的程序,而且程序必须要准确,唯一对于输入的信息有唯一的执行。 参考技术C 文件设计原则有哪些?它的设计原则肯定按照他的需要或者是内容来设计吧,我们还是先了解和关注一下吧! 参考技术D 我觉得软件的设计原则主要还是在于逻辑性,一个软件设计的好不好设计师的逻辑很重要

软件架构的六大设计原则

软件设计原则:

1.单一职责原则(Single Responsibility Principle)

单一职责原则的定义是:There should never be more than one reason for a class to change.”,也就是有且仅有一个原因引起类的变更。这样可以降低类的复杂性,实现什么职责都有清晰明确的定义;可读性提高;可维护性提高;变更引起的风险降低。


2.里氏替换原则(Liskov Substitution Principle)

“龙生龙,凤生凤,老鼠生来会打洞。”这个就是我们经常开发过程中会用到的继承。里氏置换原则的定义是:Functions that use pointers or references to base classes must be able to use objects of derived classes without knowing it,只要父类能出现的地方子类就可以出现,而且替换为子类也不会产生任何错误或异常。这样的话就要求子类必须完全实现父类的方法;覆盖或实现父类的方法时输入参数可以被放大,输出结果可以被缩小(逆变协变)。采用里氏替换原则可以提高程序的健壮性,版本升级时也可以保持非常好的兼容性。


3.依赖倒置原则(Dependence Inversion Principle)

依赖倒置原则,模块间的依赖通过抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或抽象类产生的;接口或者抽象类不依赖于实现类;实现类依赖与接口或抽象类。需要每个类尽量都有接口或者抽象类;变量的表面类型尽量是接口或者抽象类;任何类都不应该从具体类派生(超过两层), 尽量不要复写基类的方法。采用依赖倒置原则可减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码可读性和可维护性。依赖也可以称为注入,一般可以通过构造函数注入,属性注入,接口注入。


4.接口隔离原则(Interface Segregation Principle)

接口隔离原则的定义是接口尽量细化,同时接口中的方法尽量少。需要一个接口只服务于一个子模块或者业务逻辑;通过业务逻辑尽量压缩接口中的方法;这样可以提高内聚,降低耦合,重用代码。


5.迪米特法则(Law of Demeter)

迪米特法则,也称为最少知识原则,也就是一个对象应该对其他对象有最少的了解。需要只和朋友交流;朋友间也是有距离的;自己的就是自己的;如果一个类放在本类中,既不增加类间的关系,也对本类不产生负面影响,那就放置在本类中。类间解耦,弱耦合。


6.开闭原则(Open Closed Principle)

开闭原则,Software entities like classes, modules and functions should be open for extension but closed for modifications,软件实体比如类,模块,和函数应该对拓展开放,对修改关闭,也就是尽量通过拓展实体行为来实现变化。需要抽线约束,将相同的变化封装到一个接口或抽象类,将不同的变化封装到不同的接口或抽象类中。其实前面的5个原则都是开闭原则的指导设计工具和方法,开闭原则是他们的精神领袖。

 

以上是关于软件设计原则都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

软件测试的目标和准则是啥?都有哪些测试方法?测试步骤都有哪些

eda 设计软件主要都有哪些

软件设计模式都有哪些?

MAC下都有哪些UI设计师使用的软件

软件设计原则和方法通俗理解

软件架构的六大设计原则