×

面向对象的设计原则

面向对象的设计原则(面向对象设计原则有哪些)

admin admin 发表于2024-05-22 08:35:51 浏览21 评论0

抢沙发发表评论

大家好,今天小编来为大家解答以下的问题,关于面向对象的设计原则,面向对象设计原则有哪些这个很多人还不知道,现在让我们一起来看看吧!

本文目录

面向对象设计原则有哪些

SRP 单一职责原则就一个类而言,应该专注于做一件事和仅有一个引起它变化的原因。OCP 开放--封闭原则对于扩展开放,对于修改封闭。LSP 里氏替换原则子(继承)类能在程序中代替父类(C#:基类,Java:超类)。DIP 依赖倒置原则抽象不依赖于细节,细节应该依赖抽象。(面向抽象编程,C#为面向接口编程)。ISP 接口隔离原则接口属于用户类。(接口面用用户类,不用想着和自身层次、方法相关)REP 重用发布等价原则重用的粒度就是发布的粒度。(?这个没有具体的认识)CCP 共同封闭原则对于需求的响应,一个包中的所以类,有一个共同的响应(改变),而对于包外是不造成影响。CRP 共同重用原则包中的所有类共同重用,就是要重用就全部重用。ADP 无环依赖原则依赖关系不要存在环。ADP 稳定依赖原则朝着稳定的方向进行依赖。SAP 稳定抽象原则包的抽象程度应该和稳定程序一致。

面向对象设计有7个主要原则,( )强调子类可以替换父类

【答案】:B里式替换原则:子类可以替换父类迪米特原则:一个对象应当对其他对象有尽可能少了解。依赖倒置原则:要依赖于抽象,不是具体实践。对接口进行编程,不要对实现编程。

面向对象设计有7个主要原则,( )要求一个对象应当对其他对象有尽可能少了解

【答案】:A里式替换原则:子类可以替换父类迪米特原则:一个对象应当对其他对象有尽可能少了解。依赖倒置原则:要依赖于抽象,不是具体实践。对接口进行编程,不要对实现编程。

面向对象设计原则

面向对象设计原则有7个,这7大设计原则包括开闭原则、里氏替换原则、依赖倒转原则、单一职责原则、接口隔离原则、组合/聚合复用原则、迪米特法则。面向对象设计7大原则,是初/中级Java工程师向高级/资深工程师进阶的一个必备技能,它可以大大提升程序的可复用性和可维护性,也是重构代码的一大利器。面向对象设计简介面向对象设计一般指OOD。面向对象设计(Object-OrientedDesign,OOD)方法是OO方法中一个中间过渡环节。其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。

面向对象设计原则 面向对象设计原则有哪些

1、单一职责原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。单一职责原则是实现高内聚、低耦合的指导方针,是最简单却最难运用的原则,需要设计人员发现类的不同职责并将其分离。 2、开闭原则:软件实体应当对扩展开放,对修改关闭。指软件实体应尽量在不修改原有代码的情况下进行扩展。 3、里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象。里氏替换原则表明,在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立。在运用里氏替换原则时,应该将父类设计为抽象类或者接口,让子类继承父类或实现父类接口,并实现在父类中声明的方法。 4、依赖倒转原则:高层模块不应该依赖底层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。依赖倒转原则要求:要针对接口编程,不要针对实现编程。 5、接口隔离原则:客户端不应该依赖那些它不需要的接口。在使用接口隔离原则的时候,需要注意控制接口的粒度,接口不能太小,如果太小会导致系统中接口泛滥,不利于维护;接口也不能太大,太大的接口将违背接口隔离原则,灵活性较差,使用起来不方便。 6、合成复用原则:优先使用对象组合,而不是继承来达到复用的目的。一般而言,如果两个类之间是Has-A关系应使用组合或聚合,如果是Is-A关系可使用继承。 7、迪米特法则-又称最少知识原则:每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。

面向对象设计的6个设计原则最早谁提出的

1967年挪威计算中心的Kisten Nygaard和Ole Johan Dahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。

20世纪70年代初,Palo Alto研究中心的Alan Kay所在的研究小组开发出Smalltalk语言,之后又开发出Smalltalk-80,Smalltalk-80被认为是最纯正的面向对象语言,它对后来出现的面向对象语言,如Object-C,C++,Self,Eiffl都产生了深远的影响。

随着面向对象语言的出现,面向对象程序设计也就应运而生且得到迅速发展。

之后,面向对象不断向其他阶段渗透,1980年Grady Booch提出了面向对象设计的概念,之后面向对象分析开始。

1985年,第一个商用面向对象数据库问世。1990年以来,面向对象分析、测试、度量和管理等研究都得到长足发展。

面向对象设计的6个设计原则:

什单一职责:

一个类中的属性和方法要有很高的相关性,不然就拆开;如果一个类很庞大,则需要进一步细分职能,把相关性更高的归到一块。

开闭原则:

对扩展开放,对修改关闭。

极端要求就是:程序完成后,除非是修改错误,不然不能修改代码,只能扩展代码。

比如一个功能,有多种实现方法,即有多个类型,不要用if-else这种分支在一个类中去指定其类型;而是对接口编程,通过继承,把实现透明化,每增加一个类型就增加一个类。

想这么一个问题,每增加一个类型的时候,是修改原类添加一个else分支好还是实现一个新的与老代码无关的新类好?

下面这种实现就是对修改开放的结果,每次要增加一个类型,都得修改原有代码,导致原有系统可能被引入bug,需要被重新测试:

class Demo {        public static final int TYPE_A = 1;        public static final int TYPE_B = 2;        public static final int TYPE_C = 3;        public Demo(int type) {            if(type == 1) {                //act as TYPE_A            }            if(type == 2) {                //act as TYPE_B            }            if(type ==3) {                //act as TYPE_C            }}}

下面这种情况就是对修改关闭,通过对接口变成对扩张开放,新增一个类型不用修改原有代码:

interface Type {}    class Demo2 {        private Type mType = null;        public Demo2() {}        public void setType(Type type) {mType = type;//act like what you assigned.        }}    class TypeA implements Type {}    

里氏替换原则:

开闭原则就是通过里氏替换来实现的,即对接口编程,建立抽象,具体的实现在运行时替换掉抽象,所有引用基类的地方必须能透明地使用其子类对象。

依赖导致原则:

就是调用者(客户代码)不依赖于被调用者(实现代码)的实现细节,而是依赖其抽象。

调用者不依赖被调用者的具体实现,而是依赖被调用者的抽象,这样被调用者后续可以被无感替换掉;

接口隔离原则:

接口定义要最小化,就是接口只专注一个领域,不要大而全,要小而细。

比如Closeable接口只管close,不管其实现类的其他事情,Comparable接口只管比较,不管其他的。

迪米特原则(least Knowledge Principle):

就是类与类的少了解,即类只需要知道依赖类必须知道的方法,其余的细节不要去了解;类的“朋友”要少,即类尽可能只跟必须要打交道的有依赖,不要依赖一大堆。

各大中小企业寻找软件定制开发及软件产品,网站建设等服务,就要找类似优客美这种拥有一流的技术团队与专业的服务人员,具备很强技术能力的正规软件公司。

面向对象的设计

面向对象设计是把分析阶段得到的需求转变成符合成本和质量要求的、抽象的系统实现方案的过程。从面向对象分析到面向对象设计,是一个逐渐扩充模型的过程。 瀑布模型把设计进一步划分成概要设计和详细设计两个阶段,类似地,也可以把面向对象设计再细分为系统设计和对象设计。系统设计确定实现系统的策略和目标系统的高层结构。对象设计确定解空间中的类、关联、接口形式及实现操作的算法。 (一)面向对象设计的准则⒈模块化面向对象开发方法很自然地支持了把系统分解成模块的设计原则:对象就是模块。它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。分解系统为一组具有高内聚和松耦合的模块是模块化的属性。 ⒉抽象面向对象方法不仅支持过程抽象,而且支持数据抽象。⒊信息隐藏在面向对象方法中,信息隐藏通过对象的封装性来实现。⒋低耦合在面向对象方法中,对象是最基本的模块,因此,耦合主要指不同对象之间相互关联的紧密程度。低耦合是设计的一个重要标准,因为这有助于使得系统中某一部分的变化对其它部分的影响降到最低程度。 ⒌高内聚⑴操作内聚。⑵类内聚。⑶一般——具体内聚。(二)面向对象设计的启发规则⒈设计结果应该清晰易懂使设计结果清晰、易懂、易读是提高软件可维护性和可重用性的重要措施。显然,人们不会重用那些他们不理解的设计。 要做到:⑴用词一致。⑵使用已有的协议。⑶减少消息模式的数量。⑷避免模糊的定义。 ⒉一般——具体结构的深度应适当⒊设计简单类应该尽量设计小而简单的类,这样便以开发和管理。为了保持简单,应注意以下几点:⑴避免包含过多的属性。⑵有明确的定义。⑶尽量简化对象之间的合作关系。⑷不要提供太多的操作。 ⒋使用简单的协议一般来说,消息中参数不要超过3个。⒌使用简单的操作面向对象设计出来的类中的操作通常都很小,一般只有3至5行源程序语句,可以用仅含一个动词和一个宾语的简单句子描述它的功能 ⒍把设计变动减至最小通常,设计的质量越高,设计结果保持不变的时间也越长。即使出现必须修改设计的情况,也应该使修改的范围尽可能小。 (三)系统设计系统设计是问题求解及建立解答的高级策略。必须制定解决问题的基该方法,系统的高层结构形式包括子系统的分解、它的固有并发性、子系统分配给硬软件、数据存储管理、资源协调、软件控制实现、人机交互接口。⒈系统设计概述设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。 ⑴系统分解。系统中主要的组成部分称为子系统,子系统既不是一个对象也不是一个功能,而是类、关联、操作、事件和约束的集合。 ⑵确定并发性。分析模型、现实世界及硬件中不少对象均是并发的。 ⑶处理器及任务分配。各并发子系统必须分配给单个硬件单元,要么是一个一般的处理器,要么是一个具体的功能单元。 ⑷数据存储管理。系统中的内部数据和外部数据的存储管理是一项重要的任务。通常各数据存储可以将数据结构、文件、数据库组合在一起,不同数据存储要在费用、访问时间、容量及可靠性之间做出折衷考虑。 ⑸全局资源的处理。必须确定全局资源,并且制定访问全局资源的策略。⑹选择软件控制机制。分析模型中所有交互行为都表示为对象之间的事件。系统设计必须从多种方法中选择某种方法来实现软件的控制。 ⑺人机交互接口设计。设计中的大部分工作都与稳定的状态行为有关,但必须考虑用户使用系统的交互接口。 ⒉系统结构的一般框架⒊系统分解——建立系统的体系结构可用的软件库以及程序员的编程经验。通过面向对象分析得到的问题域精确模型,为设计体系结构奠定了良好的基础,建立了完整的框架。 ⒋选择软件控制机制软件系统中存在两种控制流,外部控制流和内部控制流。⒌数据存储管理数据存储管理是系统存储或检索对象的基本设施,它建立在某种数据存储管理系统之上,并且隔离了数据存储管理模式的影响。 ⒍设计人机交互接口在面向对象分析过程中,已经对用户界面需求作了初步分析,在面向对象设计过程中,则应该对系统的人机交互接口进行详细设计,以确定人机交互的细节,其中包括指定窗口和报表的形式、设计命令层次等项内容。 (四)对象设计⒈对象设计概述⒉三种模型的结合⑴获得操作。⑵确定操作的目标对象。⒊算法设计⒋优化设计⒌控制的实现⒍调整继承⒎关联的设计

面向对象设计原则有哪些的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于面向对象设计原则有哪些、面向对象设计原则有哪些的信息别忘了在本站进行查找哦。