资讯专栏INFORMATION COLUMN

面向对象设计与分析--概念篇

王军 / 480人阅读

摘要:什么事面向对象面向对象方法是一种运用对象,类,继承,封装,聚合,关联,消息,多态等概念和原则来构造软件系统的开发思想方法。面向对象方法以众多的类及交互模式类间的协同工作为中心。

1.什么事面向对象?
面向对象方法是一种运用对象,类,继承,封装,聚合,关联,消息,多态等概念和原则来构造软件系统的开发思想(方法)。
2.面向对象中的的基本概念:
A.对象:把问题域中的事物抽象地表示为系统中的对象,作为系统的基本构成单位。
B.属性和操作:用对象的属性表示事物的数据特征;用对象的操作表示事物的行为特征。
C.对象的封装:对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。
D.类:把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,对象是类的实例。
E:继承:通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档。
F:多态:多态性可以简单地概括为“一个接口,多种方法”,字面意思为多种形态。程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。
F.聚合:复杂的对象可以用简单的对象作为其构成部分。
G.类的封装:类具有封闭性,把内部的属性和操作隐藏起来,只有公共的操作对外是可见的。
H.消息:对象之间通过消息进行通讯,以实现对象之间的动态联系。总之一句,向对象发出的操作请求称之为消息。即要求对象之间只能通过消息进行通讯。

J.关联:通过关联表达类(一组对象)之间的静态关系。
结构关系:

拓展:消息传递机制与函数调用机制的区别

第一,在消息传递机制中,每一个消息被发送给指定的接收者(对象)。在命令式编程范型中,函数调用机制没有指定的接收者。

第二,消息的解释(用来完成操作请求的方法或操作/代码集)依赖接收者,并且因接收者的不同而异。

第三,在面向对象的范型中,通常在运行时才能知道给定消息的特定的接收者。

2.1 继承:益于复用,提高效率
子类从父类中继承属性和操作,根据需要添加自己的属性和方法。

一般类与特殊类之间的关系叫泛化关系(继承关系),简称泛化。

多重继承:允许一个特殊类具有一个以上一般类的继承模式称作多重继承(软件工程师,有本科,有研究所,有大专学历的)

2.2 聚合:
一个(较复杂的)对象由其他若干(较简单的)对象作为其构成部分,称较复杂的对象为聚集(组合),称较简单的对象为成分,称这种关系为聚合。

2.3 关联
类之间的静态联系称作关联。在实例化后,由类产生对象,由关联产生连接对象的链。链是关联的实例。 关联的表示符号也称作实例连接
2.4 抽象是什么意思?
从事物中舍弃个别的非本质的特征,而抽取共同的、本质特征的做法叫抽象。分过程抽象、数据抽象
2.5 类和对象
类:把具有共同性质的事物划分为一类,得出一个抽象的概念。
对象:所有的对象都是类的实例。实例能够在运行时被产生(初始化)或销毁(删除)。
2.6 封装什么意思?
把对象的属性和操作结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。只是向外部提供接口,降低了对象间的耦合度。
由封装机制保证:数据不能被对象的使用者直接访问。只允许通过由对象提供的方法或代码访问数据。
封装的结果:信息隐蔽,
对象的操作定义了其他的对象怎样获得对其的访问。每一个对象都将提供给所有对象的公共操作公开化。它也提供仅局限于特定对象的其它的操作(受保护的和私有的)。其他的对象对被请求的对象怎样提供操作(代码,内部数据)没有感知。

2.7 多态是什么意思?
多态是指同一个命名可具有不同的语义。面向对象方法中,在一般类中定义的属性或操作被特殊类继承之后,具有不同的数据类型或表现出不同的行为。     

用途: 把具有共同基类的对象组成一组,并对它们进行一致的处理。
如,多边形下的三角形、长方形、正多边形。

2.8 行为分析:有静态,动态之分
行为分析是我们用来考察一个对象(类)是怎样提供它的操作的过程。

静态模型:关系机制为我们提供了用同等(关联、依赖)和层次(一般化/特殊化和聚合)结构组织类/对象的方法。很多面向对象的专家把模型的这部分结构称作静态模型。
静态行为:实现操作的代码不被任何外部或内部的事件(动作)所影响。只要我们使用命令式编程,就可以做到这一点。

动态行为:在行为中发生这些变化的原因可能是由于对象存在很多不同的状态。随后,对象根据它的状态做出反映。使用命令式编程技术不能很好地处理这种类型的行为。使用另外的一种称为有限状态机的机制会更好地捕获这样的方法。

例如:航班定票系统中的定票过程对象“机票”的状态:预定、等待、确认、取消、使用、归档
拓展:系统中的对象是相互协作的,通过发消息共同完成某项功能。这种协作的交互性,可以用交互图来进行描述。有很多系统具有并发行为。从事物的并发行为的起因上看,每个并发行为是主动发生的。体现在对象上,就是有一种对象是主动的,它代表着一个进程或线程,剩余的另一种对象则是被动的。在交互图上也能体现出对象间的并发行为。
3.复杂性控制:
引入包(package) 的概念,使模型具有大小不同的粒度层次,以利于控制复杂性。
4.面向对象的价值和作用:
自然语言和编程语言的---语言鸿沟
把数据和处理数据的过程作为一个整体,即对象---有助于软件的维护与复用

面向对象方法的主要优点:

把易变的数据结构和部分功能封装在对象内并加以隐藏,
一是保证了对象行为的可靠性;
二是对它们的修改并不会影响其他的对象,有利于维护,对需求变化有较强的适应性。

封装性和继承性有利于复用对象。
把对象的属性和操作捆绑在一起,提高了对象(作为模块)的内聚性,减少了与其他对象的耦合,这为复用对象提供了可能性和方便性。在继承结构中,特殊类对一般类的继承,本身就是对一般类的属性和操作的复用。

5.拓展软件开发方法:
结构化方法:从算法的角度进行建模,所有的软件都用过程或函数作为其主要构造块。人们把大量精力都集中在控制流程和大算法的分解上。这种建模的缺点是模型脆弱。需求变动、维护困难。
面向对象方法:以众多的类及交互模式(类间的协同工作)为中心。        
着重于的数据库方法:以实体-关系模型为中心,该模型的行为放入触发器和存储过程中。
对于一个给定的应用系统和开发方法,上述的任何一种方法可能都是正确的。只是代价和收益是不同的。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28460.html

相关文章

  • PHP面试之面向对象(1)

    摘要:二面向对象有什么特征面向对象的主要特征有抽象继承封装和多态。析构函数析构函数是在引入的,它的作用与调用时机和构造函数刚好相反,它在对象被销毁时自动执行。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。PHP中面向对象常考的知识点有以下7点,我将会从以下几点进行详细介绍说明,帮助你更好的应对PHP面试常考的面向对象相关的知识点和考题。整个面向对象文章的结构涉...

    phodal 评论0 收藏0
  • php设计模式

    摘要:我们今天也来做一个万能遥控器设计模式适配器模式将一个类的接口转换成客户希望的另外一个接口。今天要介绍的仍然是创建型设计模式的一种建造者模式。设计模式的理论知识固然重要,但 计算机程序的思维逻辑 (54) - 剖析 Collections - 设计模式 上节我们提到,类 Collections 中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了...

    Dionysus_go 评论0 收藏0
  • php设计模式

    摘要:我们今天也来做一个万能遥控器设计模式适配器模式将一个类的接口转换成客户希望的另外一个接口。今天要介绍的仍然是创建型设计模式的一种建造者模式。设计模式的理论知识固然重要,但 计算机程序的思维逻辑 (54) - 剖析 Collections - 设计模式 上节我们提到,类 Collections 中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了...

    vspiders 评论0 收藏0
  • 全栈是概念,兴趣亦为追求(全栈开发者)

    摘要:耐得住寂寞,才能等得到花开慢慢积累自己的知识,不断叠加,全面优化,无论在哪个领域都可以有你的一席之地,即为有志者事竟成,破釜沉舟,百二秦关终属楚也祝我们能向未来发展的开发者们苦心人天不负,卧薪尝胆,三千越甲可吞吴。 我们今天来了聊一聊一个话题——全栈开发 作为一个程序员,不管是Java还是C...

    lbool 评论0 收藏0
  • SegmentFault 技术周刊 Vol.32 - 七夕将至,你的“对象”还好吗?

    摘要:很多情况下,通常一个人类,即创建了一个具体的对象。对象就是数据,对象本身不包含方法。类是相似对象的描述,称为类的定义,是该类对象的蓝图或原型。在中,对象通过对类的实体化形成的对象。一类的对象抽取出来。注意中,对象一定是通过类的实例化来的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 马上就要到七夕了,离年底老妈老爸...

    李昌杰 评论0 收藏0

发表评论

0条评论

王军

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<