面向对象的软件开发方法简介
面向对象的软件开发与设计方法

面向对象的软件开发与设计方法随着科技的不断发展,软件已经成为了人们日常生活不可或缺的一部分。
随着软件业的迅速发展,面向对象的软件开发和设计方法被普遍采用。
这种方法从过去的面向过程的开发方法转变成了更加人性化、灵活和可维护的面向对象的软件开发方法。
一、面向对象的软件开发方法的基本概念面向对象的软件开发方法主要基于三个基本概念:封装、继承和多态。
封装是指将属性和方法包装在一起,形成一个独立的单元,保护数据的访问,使得实现细节对客户端是隐藏的。
继承是指从已有的类派生出一个新的类并扩展它的功能,使得父类的特征和行为在子类中能够被复用和扩展。
多态是指允许不同的对象对同一个消息作出不同的响应,使得程序可扩展性更好。
这三个基本概念为面向对象的软件开发方法奠定了基础。
二、面向对象的软件开发方法的优势与面向过程的开发方法相比,面向对象的软件开发方法具有很大的优势。
首先,它使得程序的结构更加模块化,易于维护。
因为程序按照类的形式进行划分,使得代码的复用变得更加方便,同时也可以减少代码的重复,从而提高了程序的可重用性。
其次,它提高了程序的可扩展性。
因为面向对象的软件开发方法将功能划分为不同的类,因此,如果需要新增或修改某个功能,只需要修改自己的类,而不会影响到其他模块。
最后,它增加了程序的安全性。
因为它具有封装的特征,将数据和方法进行封装,防止了数据的被外部访问和修改。
三、面向对象的软件开发方法的基本原则面向对象的软件开发方法有以下的基本原则:开闭原则、单一职责原则、替换原则、依赖倒置原则和接口隔离原则。
开闭原则是指开放扩展,关闭修改。
单一职责原则是指每个类只负责一个功能。
替换原则是指子类可以替换父类,而系统仍然可以正常运行。
依赖倒置原则是指面向接口编程。
接口隔离原则是指不应该强迫客户端依赖于它不需要的接口。
这些原则是面向对象的软件开发方法的基础,按照这些原则进行开发可以保证软件的质量和可维护性。
四、面向对象的软件设计方法的流程面向对象的软件设计方法的流程主要包括以下步骤:需求分析、设计模型、建模、实现和测试。
面向对象技术在软件开发中的应用

面向对象技术在软件开发中的应用随着计算机技术的发展和计算机的广泛应用,软件应用越来越广泛,人们对于软件开发的要求也越来越高。
在软件开发中,面向对象技术被广泛应用,成为开发的重要手段之一。
本文将详细介绍面向对象技术在软件开发中的应用。
一、面向对象技术的概念面向对象技术是一种基于对象的程序设计方法,它将系统看作一组对象的集合,每个对象都有自己的状态和行为,通过对对象的状态和行为进行抽象和封装,实现代码的重用和更好的可维护性。
面向对象技术主要包括以下三个特性:封装:在面向对象技术中,每个对象都有自己的数据和方法,并将其封装起来,以避免其他对象直接访问和改变它们的值。
继承:通过继承可以将一个类的属性和方法继承到另一个类中,实现代码的复用,减少代码的冗余。
多态:多态是指同一种方法可以被不同的对象以不同方式调用,通过多态可以提高代码的可扩展性。
二、面向对象技术在软件开发中有以下几个常见的应用:1.面向对象分析(OOA)面向对象分析(OOA)是一种软件开发方法,其主要目的是将问题域转换为面向对象的模型。
通过面向对象分析,可以将需求变成可执行的模型,同时有效的抵制需求波动造成的影响。
在OOA中,首先需要对问题进行分析,确定系统的需求和功能,然后通过细化这些需求和功能,逐步将其转化为面向对象的模型。
最终得到的模型就可以直接映射到程序代码中。
2.面向对象设计(OOD)面向对象设计(OOD)是一种根据面向对象技术的相关规定对编程进行设计的方式。
这种设计方式将业务领域中的复杂性进行分析与设计,将其转化为面向对象的模型。
在面向对象设计中,首先要创建一个类图,根据需求,在类图上添加所需的类,然后建立类之间的关系。
在建立好类图之后,开始设计每个类的成员方法和属性,最终得到模型,可以直接映射到程序代码中。
3.面向对象编程(OOP)面向对象编程(OOP)是一种开发应用程序的编程技术,通过面向对象编程,可以将任务的操作对象看作是一个独立的对象。
oma 方法

OMA 方法1. 简介OMA(Object Management Architecture)方法是一种面向对象的软件开发方法,它提供了一套规范和指导原则,用于设计和实现复杂的软件系统。
OMA 方法强调模块化、可重用性和可扩展性,使得开发人员能够更加高效地开发和维护软件。
2. OMA 方法的特点2.1 面向对象OMA 方法是一种基于面向对象思想的方法。
它将系统抽象为一组相互关联的对象,并通过定义对象之间的接口和交互来描述系统行为。
这种面向对象的设计方式使得系统更加模块化、可重用,并且易于理解和维护。
2.2 模块化设计OMA 方法鼓励将系统拆分为多个模块,每个模块负责特定的功能。
这种模块化设计有利于降低系统复杂性,提高代码可读性,并且便于并行开发。
2.3 可重用性OMA 方法提倡将通用功能封装为可重用的组件,以便在不同项目中复用。
这样可以减少代码冗余,提高开发效率,并且改善软件质量。
2.4 可扩展性OMA 方法允许系统在需求变化时进行扩展。
通过定义良好的接口和抽象层,系统可以方便地添加新的功能模块或修改现有模块,而不会对其他部分造成影响。
2.5 迭代开发OMA 方法采用迭代开发的方式,将整个开发过程分为多个迭代周期。
每个迭代周期都包括需求分析、设计、编码和测试等阶段。
这种迭代开发方式使得开发人员能够更早地获得反馈,并且及时进行调整和改进。
3. OMA 方法的流程OMA 方法包括以下几个主要步骤:3.1 需求分析在需求分析阶段,开发团队与用户合作,明确系统的功能和性能要求。
通过与用户的沟通,团队能够更好地理解用户需求,并将其转化为可执行的任务。
3.2 系统设计在系统设计阶段,开发团队根据需求分析结果,定义系统的结构和行为。
这包括确定对象模型、类图、时序图等,并且规划系统的架构和组件之间的关系。
3.3 组件实现在组件实现阶段,开发团队根据系统设计,开始编码和实现各个组件。
在这个阶段,团队需要遵循面向对象的原则,确保代码的可读性、可维护性和可重用性。
软件工程面向对象软件开发方法

软件工程面向对象软件开发方法引言在当前的软件开发领域中,面向对象编程(Object-oriented programming,简称OOP)是一种主要的软件开发方法。
面向对象软件开发方法基于面向对象的程序设计理念,通过将问题分解为对象,并通过对象之间的交互来解决问题。
本文将介绍面向对象软件开发的概念、特性以及在软件工程中的重要性。
面向对象软件开发概述面向对象软件开发是一种以对象为核心的软件开发方法,其中一个对象可以是一个类的实例或一个类本身。
对象在面向对象软件开发中被视为具有状态、行为和标识的实体。
该方法通过将问题分解为对象,并定义对象之间的关系和交互来解决问题。
面向对象软件开发方法有以下几个基本特征:1.封装(Encapsulation):通过封装将数据和相关操作组合在一起,只暴露必要的接口给外部使用。
封装可以使得对象的内部实现对外部不可见,提高了代码的可维护性和安全性。
2.继承(Inheritance):通过继承,在已有类的基础上创建新的类。
继承可以促使代码重用和层次化设计。
3.多态(Polymorphism):多态允许同一操作作用于不同类型的对象上,并产生不同的结果。
这种特性增加了代码的灵活性和可扩展性。
面向对象软件开发方法的优势包括:•提高开发效率:通过封装和抽象的机制,可以更好地管理和组织大型项目的代码,减少开发时间和维护成本。
•提高代码复用性:通过继承和多态的机制,可以避免重复编写相似的代码,提高了代码的复用性和可维护性。
•提高软件的可扩展性:面向对象软件开发方法的灵活性使得系统易于进行修改和扩展,能够快速适应变化的需求和技术。
面向对象软件开发流程面向对象软件开发方法通常包括以下几个主要步骤:在需求分析阶段,软件工程师与客户交流,确保准确理解客户的需求和问题。
通过讨论和分析,确定系统的功能需求、非功能需求和约束条件。
领域建模领域建模是通过抽象和建模来描述问题领域的过程。
通过识别实体、属性和关系,构建领域模型,这些模型将在后续的设计和实现阶段中使用。
软件开发中的面向对象分析方法

软件开发中的面向对象分析方法随着计算机科技的发展,软件开发的重要性也越来越显著。
不同类型的软件需要不同的开发方法和技术,而面向对象分析方法是其中一种比较受欢迎的开发方法。
本文将对面向对象分析方法进行探讨和分析。
一、什么是面向对象分析方法?面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它是一种软件开发方法,广泛应用于现代软件开发中。
面向对象编程的特点是将一个复杂的系统分解成多个对象,通过对象之间的相互协作来完成任务。
面向对象分析方法就是建立在面向对象编程基础之上的分析方法。
它通过对现实问题的分析,将事物抽象成一个个对象,并且通过抽象后的对象之间的相互关系来描述问题。
面向对象分析方法强调对问题的抽象和分解,使得开发人员可以更加清晰地理解和分析问题。
二、面向对象分析方法的优点1. 面向对象分析方法可以提高软件开发的效率。
面向对象分析方法可以减少软件开发过程中的工作量,大大节省了开发人员的时间和精力。
通过对问题的抽象和分解,开发人员可以更加专注于解决实际问题,而不是花费大量时间去实现复杂的算法。
2. 面向对象分析方法可以提高软件的可维护性。
面向对象分析方法将整个系统分解成多个对象,每个对象之间的关系相对独立。
这种独立性使得当系统中的某个对象需要修改时,其他对象不会受到影响,从而提高了系统的可维护性。
3. 面向对象分析方法可以提高软件的可扩展性。
面向对象分析方法强调对系统的分解和抽象,这种分解和抽象是可以扩展的。
当需要添加新的功能时,开发人员只需要添加一个新的对象或者修改现有的对象,不需要修改整个系统,从而提高了系统的可扩展性。
4. 面向对象分析方法可以提高软件的可重用性。
面向对象分析方法将系统分解成多个对象,这些对象可以独立使用或者组合使用。
这种独立性和组合性使得对象可以被重复利用,从而提高了系统的可重用性。
这也是面向对象分析方法的一个重要优点。
三、面向对象分析方法的应用面向对象分析方法在软件开发中有着广泛的应用。
面向对象开发方法简述

面向对象开发方法简述面向对象开发方法是一种软件开发方法,它以对象为中心,将软件系统的各部分看做对象,通过对象之间的交互实现软件系统的功能。
面向对象开发方法具有可重用性强、结构清晰、易于扩展和维护等优点,因此已广泛应用于各个领域的软件开发。
面向对象开发方法的主要特点是将软件系统看做一个由多个对象组成的整体,每个对象具有自己的属性和行为,对象之间可以进行交互和通信,通过对象之间的交互和组合实现软件系统的功能。
面向对象开发方法需要遵循以下原则:1.封装封装是指将对象的属性和行为封装在一起,形成一个独立的单元,对外部不可见。
封装可以保证对象的属性和行为不会被误修改,保证了软件系统的安全性和稳定性。
2.继承继承是指在已有类的基础上,创建一个新的类,并且继承原有类的属性和方法。
继承可以减少代码的冗余,提高代码的复用率,降低开发成本。
3.多态多态是指同一种行为或方法可以具有不同的表现形式。
多态可以提高代码的可扩展性,增加代码的灵活性。
面向对象开发方法主要包含以下几个步骤:1.需求分析需求分析是软件开发的第一步,需要明确系统所需功能和要求,然后将其转化为软件需求文档。
2.设计设计是整个软件开发过程的核心,需要将需求转化为具体的设计方案,包括系统结构设计、模块设计和接口设计等。
3.编码编码是将设计方案转化为实际的程序代码的过程,需要按照面向对象的原则进行编码。
4.测试测试是确保软件系统能够正常运行的过程,包括单元测试、集成测试和系统测试等环节。
5.发布发布是将软件系统交付给用户使用的过程,需要进行软件部署、文档编写和培训等工作。
面向对象的软件开发方法和技术

面向对象的软件开发方法和技术一、引言人类对计算机的需求日益增长,软件开发在现代社会中变得越来越重要。
面向对象的软件开发方法和技术在实践中证明是一种行之有效的开发方式。
二、面向对象编程的概念面向对象编程(Object Oriented Programming,OOP)是一种编程范式,该范式将所有的代码都视为对象,每个对象都有其自身的属性和方法。
面向对象的编程范式下,程序中的对象相互合作,共同实现程序的目标。
三、面向对象软件开发方法面向对象软件开发方法是一种在面向对象编程范式下的软件开发方法,它包括以下步骤:1. 定义问题定义问题是软件开发的首要任务。
在开发软件之前,开发人员需要清楚地了解软件应该具有的目标以及实现这些目标所应采取的方案。
2. 需求分析通过需求分析,开发人员能够深入了解软件的用途和功能。
在这一步骤中,开发人员需要与用户沟通,明确软件需求,进而把用户期望的功能和开发的技术结合起来。
3. 设计在软件设计阶段中,面向对象的思想体现得最为明显。
开发人员将系统模块化,将模块看作对象,并设定对象之间的交互规则。
同时,开发人员在设计过程中也要考虑程序的可维护性,易读性等。
4. 编程编程是将设计转换为实践的过程。
在这一步骤中,开发人员利用编程语言实现系统的各个模块。
在面向对象编程的方法中,开发人员应该以对象为中心完成开发,即将每个对象分别编写好,再实现其之间的互动。
5. 测试测试是软件开发过程中至关重要的一个阶段。
测试的目的是验证程序是否按照设计的要求正常工作。
四、面向对象软件开发技术面向对象软件开发技术包括以下四个方面:1. 继承继承是面向对象编程中的一个基本概念。
它允许开发人员通过扩展已有的类来创建一个新的类。
2. 多态多态是一种对象的多种表现形式的能力。
通过多态,程序可以利用同一个函数完成多种类型的操作。
3. 封装封装允许开发人员在一个对象内部隐藏数据和方法,只暴露必要的接口。
4. 抽象抽象允许开发人员将对象仅仅看作是规则和接口的集合。
面向对象软件开发方法的适用性分析

面向对象软件开发方法的适用性分析引言面向对象软件开发方法是一种广泛应用于软件开发领域的方法论,它的核心思想是将软件系统看作是由各个对象组成的,通过对象之间的交互与合作来实现系统的功能。
面向对象软件开发方法在实际应用中具有很高的适用性,本文将从不同的角度对其适用性进行分析。
一、可维护性面向对象软件开发方法具有很高的可维护性。
在面向对象的开发方法中,系统被划分为多个对象,每个对象都具有独立的责任和功能。
这种模块化设计使得修改和维护变得更加容易,开发人员可以只修改特定的对象而不影响其他对象。
此外,面向对象开发还提供了封装、继承和多态等机制,这些特性使得代码的复用性提高,降低了维护成本。
二、可扩展性面向对象软件开发方法具有很高的可扩展性。
通过继承和多态的特性,系统可以方便地引入新的类和对象,从而实现功能的扩展。
开发人员可以通过添加新的类或修改现有类来满足不断变化的需求,而无需对现有系统做大规模的修改。
这为软件系统的进一步发展提供了便利。
三、可重用性面向对象软件开发方法能够提高代码的可重用性。
在面向对象的设计中,开发人员可以将常用的类或者一些通用的功能封装成对象,作为独立的模块供其他系统复用。
这种模块化的设计思想使得开发人员可以更加高效地利用已有的代码资源,节省了开发时间和成本。
此外,面向对象的开发方法还提供了接口和抽象类的机制,进一步促进了代码的重用。
四、可靠性面向对象软件开发方法有助于提高系统的可靠性。
通过封装和信息隐藏的机制,面向对象的开发方法能够将系统的各个模块进行隔离,降低了模块间的耦合度。
这种低耦合度使得系统各部分的独立性更强,当某个模块出现问题时,不会对整个系统产生太大影响。
此外,面向对象的开发方法还可以通过继承来减少重复的代码,从而减少了错误的产生概率。
五、可理解性面向对象软件开发方法提高了系统的可理解性。
通过将系统分解为多个对象,每个对象都通过方法来实现其功能,使得系统的架构更加清晰明了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1面向对象的软件开发方法简介面向对象的开发方法把软件系统看成各种对象的集合,对象就是最小的子系统,一组相关的对象能够组合成更复杂的子系统。
面向对象的开发方法具有以下优点。
●把软件系统看成是各种对象的集合,这更接近人类的思维方式。
●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变换。
这使得按照对象设计出来的系统结构比较稳定。
●对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式一起封装起来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。
●支持封装,抽象,继承和多态,提高了软件的可重用性,可维护性和可扩展性。
1.1 对象模型在面向对象的分析和设计阶段,致力于建立模拟问题领域的对象模型。
建立对象模型既包括自底向上的抽象过程,也包括自顶向下的分解过程。
1.自底向上的抽象建立对象模型的第一步是从问题领域的陈述入手。
分析需求的过程与对象模型的形成过程一致,开发人员与用户交谈是从用户熟悉的问题领域中的事物(具体实例)开始的,这就使用户和开发人员之间有了共同语言,使得开发人员能够彻底搞清用户需求,然后再建立正确的对象模型。
开发人员需要进行以下自底向上的抽象思维。
●把问题领域中的事物抽象为具有特定属性和行为的对象。
●把具有相同属性和行为的对象抽象为类。
●若多个类之间存在一些共性(具有相同属性和行为),把这些共性抽象到父类中。
再自底向上的抽象过程中,为了使子类能更好的继承父类的属性和行为,可能需要自顶向下的修改,从而使整个类体系更加合理。
由于这类体系的构造是从具体到抽象,再从抽象到具体,符合人们的思维规律,因此能够更快,更方便的完成任务。
2.自顶向下的分解再建立对象模型的过程中,也包括自顶向下的分解。
例如对于计算机系统,首先识别出主机对象,显示器对象,键盘对象和打印机对象等。
接着对这些对象再进一步分解,例如主机对象有处理器对象,内存对象,硬盘对象和主板对象组成。
系统的进一步分解因有具体的对象为依据,所以分解过程比较明确,而且也相对容易。
因此面向对象建模也具有自顶向下开发方法的优点,既能有效的控制系统的复杂性,又能同时避免结构化开发方法中功能分解的困难和不确定性。
1.1.2UML:可视化建模语言面向对象的分析与设计方法,在20世纪80年代末至90年代中发展到一个高潮。
但是,诸多流派在思想和术语上有很多不同的提法,对术语和概念的运用也各不相同,统一是继续发展的必然趋势。
需要有一种统一的符号来描述在软件分析和设计阶段勾画出来的对象模型,UML(Unified Modeling Language,统一建模语言)应运而生。
UML是一种定义良好,易于表达,功能强大且普遍适用的可视化建模语言。
而采用UML语言的可视化建模工具是Rational 公司开发的Rational Rose。
1.2 面向对象开发中的核心思想和概念在面向对象的软件开发过程中,开发者的主要任务就是先建立模拟问题领域的对象模型,然后通过程序代码来实现对象模型,如何用程序代码来实现对象模型,并且保证软件系统的可重用性,可扩展性和可维护性呢?本节节主要阐述面向对象开发的核心思想和概念,这些核心思想为从事面向对象的软件开发实践提供理论武器。
1.2.1 问题领域,对象,属性,状态,行为,方法,实现问题领域是指软件系统所模拟的真实世界中的系统。
随着计算机技术的发展和普及,软件系统渗透社会的各个方面,几乎可用来模拟任何一种问题领域,如学校,医院,商场,银行和太阳系等。
对象是对问题领域中事物的抽象。
对象具有以下特性:1) 万物节杰皆为对象。
问题领域中的实体和概念都可以抽象为对象。
例如:在学校领域,对象包括学生,成绩单,教师,课程,和教室等;在商场领域,对象包括客户,商品,订单。
发票,仓库和管理员等;在用Java 语言创建的图形用户界面中,窗口,滚动面板,按钮,列表,菜单,文本框等也是对象。
2) 每个对象都是唯一的。
对象的唯一性来自于真实世界中事物的唯一性。
世界上不存在两片一摸一样的叶子,因此在软件系统中用来模拟两片叶子的对象也具有唯一性。
3)对象具有属性和行为。
例如一部手机:牌子是诺基亚,价格是2000元,银白色,能够拍照,打电话和收发短信等。
这部手机的属性包括品牌类型type ,价格price 和颜色color ,行为包括拍照takePhoto(),打电话call(),发短信sendMessage()和收短信receiveMessage()。
对象的行为包括具有的功能和具体的实现。
在建立对象模型阶段,仅仅关注对象有什么样的功能,而不需要考虑如何实现这些功能。
对象的属性用成员变量表示,对象的行为用成员方法表示。
图1-1是手机的UML 类图。
4)对象具有状态。
状态是指某个瞬间对象的各个属性的取值。
对象的某些行为往往会改变对象自身的状态,即属性的取值。
例如:小王的本来体重为80kg ,经过减肥后,体重减到45kg ,参见图1-2.5)对象都属于某个类,每个对象都是某一个类的实例。
例如:演员小红,小白和小黄,他们都属于演员类。
再例如中文和英文都属于语言类。
类是具有相同属性和行为的对象的集合。
同一个类的所有实例具有相同属性,表明他们的属性的含义相同,但是他们的状态不一定相同,也就是属性取值不一定相同。
例如演员小红,小白和小黄,都有姓名,性别,年龄和体重这些属性,但他们的属性值不同。
同一个类的所有实例包括类本身的所有实例及其子类的所有实例。
类的所有实例具有相同的行为,意味着他们具有一些相同的功能。
类本身的所有实例按同样方式实现相同功能,而子类与父类之间,以及子类之间的实例则可能采用不同的方式来实现相同的功能。
1.2.2 类,类型类是一组具有相同属性和行为的对象的抽象。
类及类的关系构成了对象模型的主要内容如图1-3所示,对象模型用来模拟问题领域,Java 程序实现对象模型,Java 程序运行在Java 虚拟机提供的运行时环境中,Java 虚拟机运行在计算机上。
计算机受存储单元的限制,只能表示和操作一些基本的数据类型,比如整数,字符和浮点数。
对象模型中的类可以看作是开发人员自定义的数据类型,Java 虚拟机的运行时环境封装了把自定义的数据类型映射到计算机的内置数据类型的过程,使得开发人员不受计算机的内置数据类型的限制,对任意一种问题领域,都可以方便地根据先识别对象,再进行分类(创建任意的数据类型)的思路来建立对象模型。
图1-1 手机的UML 类图图1-2小王的减肥行为导致体重的下降图1-3从对象模型中的类型到计算机的内置数据类型的映射面向对象编程的主要任务就是定义对象模型中的各个类。
例如一下是手机类的定义。
public class CellPhone {private String type;private String color;private double price;/**构造方法*/public CellPhone(String type,String color,double color) {this.type=type;this.color=color;this.price=price;}Public void takephoto() {……};Public void call() {……};Public void sengMessage() {……};Public void receiveMessage() {……};}如何创建手机对象呢?Java语言采用new语句类创建对象,new语句会调用对象的构造方法。
以下程序代码创建了两个手机对象,一个是诺基亚牌,银白色,价格为2000元,一个是摩托罗拉牌,蓝色,价格为1999元的。
Cellphone phone1=new CellPhone (“诺基亚”,“Silvery”,2000);Cellphone phone2=new CellPhone (“摩托罗拉”,“blue”,1999);在运行时环境中,Java虚拟机首先把CellPhone类的代码加载到内存中,然后根据这个模板来创建两个CellPhone对象;所以说,对象是类的实例,类是对象的模板。
1.2.3 消息,服务软件系统的复杂功能是由各种对象的协同工作共同完成的。
例如,电视机和遥控器之间存在着这种协作关系。
当用户按下遥控器的“开机”按钮后,遥控机对象对电视对象发送一个“开机”消息。
电视机对象接受到这个“开机”消息后,就执行相应的操作。
每个对象都具有特定的功能,相对于其他对象而言,它的功能就是为其它对象提供服务。
例如电视机具有的功能包括:开机,关机,选择频道,调节音量等。
遥控器为了获得电视机的服务,需要向提出获得特定服务的请求,提出请求的过程被成为发送信息。
对象提供的服务是由对象的方法来实现的,因此发送信息也就是调用一个对象的方法。
例如遥控器向电视机发送“开机”消息,意味着遥控器对象调用电视机对象的开机方法。
从使用者的角度出发,整个软件系统就是一个服务提供者。
在UML 语言中,系统边界被称为角色。
在系统的内部,每一个子系统也是服务的提供者,他们为其他子系统提供服务,子系统之间通过发送消息来相互获得服务,一个孤立的不对外提供任何服务的系统是没有任何的意义的。
对于电视机系统,看电视的观众就是它的系统边界。
电视机系统是观众的服务提供者,电视机系统内的电视机对象是遥控器对象的服务提供者。
图1-4显示了观众打开电视的UML 时序图。
1.2.4 接口既然每个对象都是服务的提供者,如何对外提供服务呢?对象通过接口对外提供服务。
例如电视机的红外线接收器就是为遥控器提供的接口。
在现实世界中,接口也是实体,比如电源插口,洗衣机上的按钮和电灯的开关。
而在面向对象范畴中,接口是一个抽象的概念,是指系统对外提供的所有服务。
系统的接口描述系统能够提供哪些服务,但是不包含服务的实现细节。
这里的系统既可以指整个软件系统,也可以指一个子系统。
对象是最小的子系统,每个对象都是服务的提供者,因此每个对象都有接口。
站在使用者的角度,对象中所有向使用者公开的方法的声明构成了对象的接口。
使用者调用对象的公开方法来获得服务。
使用者在获得服务时,不必关心对象时如何实现服务的。
在设计对象模型阶段,系统的接口就确定下来了,例如在手机CellPhone 类的UML 类图中,它的方法声明就是手机的接口,参见图1-5接口是提高系统之间松耦合的有力手段。
例如电视机向遥控器公开了红外线接收器接图1-5 手机的接口 图1-4 观众打开电视机的UML 视图口,使得电视机和遥控器之间相互独立,当电视机的内部实现发生变化时,比如由电子显示器改为液晶显示器,只要它的红外接收器接口不变,就不会影响遥控器的实现。