浅谈面向对象方法学

简介: 浅谈面向对象方法学

一、面向对象的基本概念

对象、类、实例、消息、方法

对象:对象能够表示现实或抽象的事物,具有良好定义的责任和良好定义的行为,以及良好 定义的接口。


对象具有封装性、自治性、通信性、被动性、暂存性、持久性


类:类的定义是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。


实例:每个对象都属于一个类,属于某个类的对象称为该类的一个实例,类和对象间具有 instance-of 关系。


类是静态概念,对象是动态概念。类是 对象之上的抽象,有了类之后,对象则是类的具体化,是类的实例。


消息:消息就是向对象发出的服务请求,它应含有提供服务的对象标识、服务标识、输入信息和回答信息。


消息用来请求对象处理或回答某些信息的要求,消息统一了数据流和控制流。程序的执行是靠在对象间传递消息来完成的。


方法:方法(method)也称作行为(behavior),指定义于某一特定类上的操作与法则。


面向对象的设计方法放弃了传统语言中控制结构的概念,以往的一切控制结构的功能都可以通过对象及其相互间传递消息来实现


二、面向对象的基本特征

封装、继承、多态

封装:封装是面向对象方法的一个重要原则,它有两个含义:第一个含义是,把对象的全部 属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象);第二个含义也称作信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。


继承:继承是一种使用户得以在一个类的基础上建立新的类的技术。新的类自动继承旧类的属性和行为特征,并可具备某些附加的特征或某些限制。


继承是面向对象语言中功能最强大、最有代表性的特性。首先,继承使新的类变得简洁明了;其次,通过继承可以重复使用和扩展那些经过测试的已有的类,实现重用。最后,是利用继承可以增强处理的一致性。


多态:在收到消息时对象要予以响应,不同的对象收到同一消息可以产生完全不同的结果, 这一现象叫做多态。


三、面向对象的建模

       所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书 面描述。通常,模型由一组图示符号和组织这些符号的规则组成,利用它们来定义和描述 问题域中的术语和概念。更进一步讲,模型是一种思考工具,利用这种工具可以把知识规范地表示出来。


      面向对象的建模不仅仅是新的编程语言的汇总,而是一种新的思维方式,一种关于计 算和信息结构化的新思维。面向对象的建模,把系统看做是相互协作的对象,这些对象是结构和行为的封装,都属于某个类,那些类具有某种层次化的结构。系统的所有功能通过 对象之间相互发送消息来获得。面向对象的建模可以视作一个包含以下元素的概念框架: 抽象、封装、模块化、层次、分类、并行、稳定、可重用和可扩展性。


对象模型、动态模型、功能模型

对象模型:对象模型表示静态的、结构化的系统的“数据性质”。


面向对象方法强调围绕对象而 不是围绕功能来构造系统。对象模型为建立动态模型和功能模型,提供了实质性的框架。


动态模型:动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列通常,用状态图来描绘对象的状态、触发状态转换的事件以及对象的行为(对事件的响应)。


功能模型:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。 通常,功能模型由一组数据流图组成。


三者之间的关系:它使用数据结构(对象模型),执行操作(动态模型),并且完成效据值的变化 (功能模型)。


四、面向对象设计

准则:模块化、抽象化、信息隐藏和封装、对象的高内聚和弱耦合、可扩充性、可重用性。


面向对象设计的内容

image.png



五、面向对象的实现

设计风格

提高可重用性

提高方法的内聚、降低耦合

减小方法的规模

保持方法的一致性

尽量做到全面覆盖  

分开策略方法和实现方法

利用继承机制

提高可扩充性

封装实现策略

慎用公有方法

控制方法的规模

测试策略



六、面向对象方法学的优点与缺点

优点

1.与人类习惯的思维方法一致


2.稳定性好


3.可重用性好


4.可拓展性


5.可维护性


缺点

1.面向对象需要更关注需求、分析和设计


2.面向对象需要完全改变每一个人的思想


3面向对象需要改变软件开发文化


4.面向对象的许多优点是长期的


5.面向对象要求先在培训、教育和工具上投资


6.面向对象要求更多的测试工作


7.面向对象技术不能保证能构造出正确的系统

相关文章
|
7月前
|
测试技术 监控 程序员
软件体系结构 - 净室软件工程
软件体系结构 - 净室软件工程
163 1
|
7月前
|
存储 测试技术 BI
软件体系结构 - 系统分析与设计(2.面向对象方法)
【4月更文挑战第6天】软件体系结构 - 系统分析与设计(2)
108 0
|
7月前
|
敏捷开发 开发框架 测试技术
软件体系结构 - 软件工程(1)
【4月更文挑战第1天】软件体系结构 - 软件工程(1)
100 0
《面向对象分析与设计》一3.1 系统边界
本节书摘来自华章出版社《面向对象分析与设计》一书中的第3章,第3.1节,作者 麻志毅,更多章节内容可以访问云栖社区“华章计算机”公众号查看
3720 0
|
7月前
|
项目管理
软件体系结构 - 软件工程(2)
【4月更文挑战第2天】软件体系结构 - 软件工程(2)
44 0
|
领域建模 uml
面向对象分析与设计
一、面向对象分析与设计 面向对象分析与设计(Object-oriented Analysis and Design,简称OOAD)是一种软件开发方法论,旨在通过将现实世界的问题抽象为对象的集合来进行系统分析和设计。 面向对象分析(Object-oriented Analysis,简称OOA)是指通过识别和描述系统中的对象及其相互关系来分析问题。在面向对象分析中,重点关注的是问题域中的实体、属性、行为以及它们之间的关系。通过对问题域的深入理解,可以识别出系统中的关键对象,并确定它们的属性和行为。 面向对象设计(Object-oriented Design,简称OOD)是指根据面向对象分析的结果,
172 0
|
存储 人工智能
软件工程——面向对象技术
软件工程——面向对象技术
212 0
软件工程——面向对象技术
|
设计模式
面向对象方法-抽象
面向对象方法-抽象