面向对象技术

面向对象方法(OO):是一种实用的系统化软件开发方法。以客观世界中的对象为中心,其分析和设计思想符合人们

的思维方式,分析与设计的结果与客观世界也比较接近,易于被人接收。

一、面向对象基础

1.1面向对象的基本概念:

面向对象 = 对象(object) + 类(class) + 继承(inheritance) + 消息传递(communication with massages);

对象:客观存在的实体,具有属性(数据 data)和操作行为(方法 function),对象通常由对象名、属性和方法三部分组成。

类:位于对象之上的抽象,类是创建对象的模板,对象是类的实例化。

继承:继承是父类和子类之间共享数据与方法的机制,体现出一种层次关系。

消息传递:对象之间的通信,是通过传递消息实现的。(参数传递)

多态:在收到消息时,对象要与以响应,不同对象在收到同一消息时会产生不同的结果,这一现象称为多态。

1.2面向对象分析(OOA):

目的:为了获取对应问题的理解(确定系统的功能以及性能要求);

组成:认定对象、组织对象、对象间的相互作用、基于对象的操作、定义对象的内部信息;’

1.3面向对象设计(OOD):

含义:设计分析模型以及相应源代码的实现;

1.4面向对象程序设计(OOP):

实质:采用面向对象程序设计语言,运用对象、类、继承等相关概念进程程序设计;(java,C# 等)

类(具有实例化功能,包括实例的产生与消除):(类及其实例的特征)

1)同一类的不同实例具有相同的数据结构(属性和方法名相同);

2)同一类的不同实例具有不同的值(属性值)和状态(方法返回值);

3)实例的初始化可以在实例化时确定(在创建对象时完成初始化);

类的层次结构(继承:分为单继承(java)和多继承(C++)两种):

1)类的定义与继承的定义:

class 类名 extends 父类名  (java)
class 类名 :public[限定符] 父类名  (C++) #类通过关键字class定义;

2)执行顺序(重点):父类静态代码块 > 子类静态代码块 > 父类代码块 > 父类构造 > 子类代码块 > 子类构造

(即:静态的先执行,其余的按照由父到子的顺序执行,静态变量仅加载一次

对象、消息传递&方法:对象之间通过消息传递的方式进行通信,对象可以接收识别外部消息,拒绝其不能识别的消息。

对象自身的引用(this):用于表示当前对象,使得方法体中引用的成员名(属性和方法)与特定对象相关。

重写和覆盖(overriding):子类中重新定义父类中已经定义的方法(基本思想动态绑定机制)。

在 C++ 中通过virtual function来定义,在 java 中通过abstract method来定义。

无实例类(抽象abstract类):不能进行实例化的类(此类没有任何实例对象);

1.5面向对象测试

测试要尽可能的早,程序调试是从最底层开始,从单元测试、综合测试到系统测试;(与传统测试基本一致)

面向对象软件测试的分层(4层):

1)算法层(相当于单元测试);2)类层(模块测试);3)模板层(集成测试);4)系统层(系统测试);

二、UML(统一建模语言)

UML的组成要素:UML基本构造块、支配构造块的规则以及运用整个语言的公共机制;(3条)

UML的构造块包含3种:事物、关系和图(事物是模型中最具代表性的成分的抽象,关系将事物连接,图将事物聚集)

2.1事物:(结构事物、行为事物、分组事物、注释事物)

1)结构事物:UML模型中的名词,通常是模型的静态部分,表述概念或物理元素。

常用的结构事务包括类、接口、协作、用例、主动类、构件、制品以及结点。(8种)

2)行为事物:UML模型中的动态部分(动词),包括交互、状态机以及活动

交互(interaction):在特定语境中完成一定任务的一组对象之间交换的消息。交互涉及到消息、动作序列和链

在图形上用有向直线代表一个消息,箭头上注明消息名称;

状态机(state machine):一个对象或者一个交互在生命周期内响应的事件所经历的状态序列。一个状态机涉及到

的元素包括:转换、事件和活动,图形上状态表示为一个圆角矩形(内部注明状态名或子状态);

活动(activity):计算机执行的步骤序列,每一个步骤称之为一个动作,图形中用圆角矩形表示一个动作。

3)分组事物:UML模型中的组织部分,如 包 package。

4)注释事物:UML模型中的解释部分,便于用户理解,起到解释说明的作用。

2.2关系(依赖、关联、泛化、实现)

1)依赖关系:一个事物(独立事物)发生会影响另一个事物(依赖事物),用虚线箭头表示;

2)泛化关系:泛化表示特殊/一般的关系(继承),用空心三角箭头的实线表示,由子元素指向父元素;

3)关联关系:一种结构关系,表示事物之间存在联系,用实线表示(线上可注明1:1,1;n,m:n  重复度和角色名)

其中聚集是一种特殊的关联,其描述了整体和部分的关系,用菱形空心箭头的实线表示;

4)实现关系:用于接口可实现其的类之间或者用于用例和实现其协作之间,用空心三角箭头的虚线表示;

2.3UML中的图

在UML中提供了13种图:类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、部署图、组合结构图

包图、交互概览图以及计时图。其中序列图、通信图、交互概览图和计时图称为交互图;

类图:展现一组对象、接口、协作以及它们之间的关系;

类名

属性名:属性类型

......

方法名()

.......

接口用圆形表示,类与类之间通过关系相互连接(关系上注明关系名以及重复度)

对象图:描述某一时刻对象以及它们之间的关系;

用例图参与者、用例、系统边界以及关系(箭头)组成;(<<extend>>扩展关系,<<include>>包含关系)

交互图:对系统的动态方面进行建模,由一组对象和它们之间的关系组成(包括它们之间可能传递的消息)

状态图:展现了一个状态机(由状态、转换、事件组成)

活动图:一种特殊的状态图,展现了系统内一个活动到另一个活动的流程;

初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示

构件图:展现一组构件之间的组织和依赖。

组合结构图:用于描述一个分类器的内部结构,分类器和系统中其他组成部分的交互端口;

部署图:用于对面向对象系统的物理方面的建模方法,展现运行时处理结点及其构件的配置。

包图:用于吧模型本身组织成层次结构的通用机制,不执行,体现由模型本身分解而成的组织单元及其域来关系;

类图,对象图,用例图,部署图,构件图,包图为静态图           状态图 ,顺序图,活动图,协作图为动态图;

三、设计模式

设计模式的核心:提供相关问题的解决方案,使人们可以更加简单方便的复用承购的设计的体系结构;

 创建型与对象的创建有关;结构型处理类或对象的组合;行为型对类或对象如何交互和怎样分配职责进行描述。

3.1设计模式的要素(4条)

1)模式名称;2)问题;3)解决方案;4)效果;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值