软考中级-软件设计师(七)面向对象技术 考点最精简

本文详细介绍了面向对象编程的基础概念,包括对象、类、继承、多态和动态绑定。此外,还探讨了UML中的事物、关系和各类图,以及各种设计模式如创建型、结构型和关系型模式的原理和应用实例。
摘要由CSDN通过智能技术生成
一、面向对象基础
1.1面向对象基本概念

面向对象(Object- Oriented,OO)方法是一种非常实用的系统化软件开发方法,他以客观世界中的对象为中心,其分析设计思想符合人们的思维方式,分析和设计的结果与客观世界的实际比较接近。

面向对象=对象(Object)+分类(Classification)+继承(Inheritance)+通过消息的通信(Communication with Messages)

对象:一个对象把属性和行为封装为一个整体

消息:对象之间进行通信的一种构造叫做消息

类:一个类定义了一组大体上相似的对象

继承:继承是父类和子类之间共享数据和方法的机制

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

动态绑定:绑定是一个把过程调用和相应调用需要执行的代码加以结合的过程。动态绑定是和类的继承以及多态相联系的,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定

1.2面向对象程序设计

面向对象程序设计(Object- Oriented Programming,OOP)的实质是选用一种面向对象程序设计语言,采用对象、类及相关概念进行的程序设计

类:类具有实例化的功能,包括生成实例和消除实例。同一个类的不同实例具有相同的数据结构,承受的是同一方法集合所定义的操作;同一个类的不同实例可以持有不同值,因而具有不同状态;实例的初始状态可以在实例化时确定

二、UML
2.1事物

UML有四种事物:结构事物、行为事物、分组事物和注释事物

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

行为事物:行为事物是UML的动态部分。是模型中的动词,描述了跨越时间和空间的行为

分组事物:分组事物是UML的组织部分

注释事物:注释事物是UML的解释部分

2.2关系

UML中有四种关系:依赖、关联、泛化和实现

依赖:依赖是两个事物间的语义关系,其中一个事物发生变化会影响另一个事物。在图形上,把一个依赖化成一条可能有方向的虚线

关联:关联是一种结构关系,它描述了一组链,链是对象之间的连接,聚集是一种特殊类型的关联,描述了整体和部分间的结构关系

泛化:泛化是一种特殊/一般关系,特殊元素的对象 可替代一般元素的对象

实现:两种情况下会使用实现关系:在接口实现它们的类或构件关系;在用例和实现他们的协作之间

泛化:类与类之间的继承关系(一般从子类指向父类)

关联:两个类或类于接口的依赖关系

聚合:关联的特例,整体与部分,拥有的关系,可分离,有各自的生命周期

组合:强于聚合,不可分离,是一个整体

2.3类图

类图展现了一组对象、接口、协作和他们之间的关系,通常包括:类、接口

协作,依赖、泛化和关联关系

对象图:展现了某一时刻一组对象以及他们之间的关系,描述了在类图中所建立的事物的实例的静态快照

用例图:展现了一组用例、参与者以及他们之间的关系。用例间的扩展关系(extend)和包含关系(include)

交互图:一张交互图表现的是一个交互,由一组对象和它们之间的关系组成,包含他们之间可能传递的消息。交互图表现为序列图、通信图、交互概念图和计时图。序列图强调消息的时间顺序,通信是强调接收和发送消息的对象的结构组织,交互概览图强调控制流

状态图:展现了一个状态机,由状态、转换、事件和活动组成。强调对象行为的时间顺序

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

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

三、设计模式
3.1设计模式

3.2创建型设计模式

抽象工厂(Abstract Factory):定义一个接口用于创建相关或有依赖关系的对象族,无需明确具体类。适用于一个系统要独立于它的产品的创建、组合和表示

生成器(Builder):封装一个复杂对象的构造过程,并允许按步骤构造。适用于创建复杂对象的算法应该独立于该对象组成部分以及他们的装配方式时

工厂方法(Factory Method):定义一个创建对象的抽象方法,由子类决定要实例化的对象。适用于当一个类不知道他所必需创建的对象的类时

原型(Prototype):无需知道相应类的信息。适用于当一个系统应该独立于它的产品创建时

单例(Singleton):确保一个类最多只有一个实例,并提供一个全局访问点

3.3结构型设计模式

适配器(Adapter):类接口转换成期望的另一个接口。适用于想使用一个已经存在的类,但接口不符合要求

桥接(Bridge):将抽象部分与他的实现部分分离,可独自变化

组合(Composite):将对象组合成树状的层次结构模式,使用户对单个对象有一致访问性

装饰(Decorator):动态的将新功能附加到对象上

外观(Facade):隐藏了系统复杂性,向客户端提供一个接口

享元(Flyweight):通过共享高效的支持大量细粒度的对象。适用于一个程序使用; 大量对象

代理(Proxy):由代理对象控制原对象的引用。适用于需要复杂对象代替简单指针的时候

3.4关系型设计模式

父与子类:策略(Strategy)、模版方法(Template Method)

两个类之间:观察者(Observe)、迭代器(Iterator)、责任链(Chain of Responsibility)、命令(Command)

类的状态:备忘录(Memento)、状态(State)

通过中间类:访问者(Visitor)、中介者(Mediator)、解释器(Interpreter)

3.5设计模式应用实例

外观:提供一个统一的界面,适用于子系统复杂的情况

享元:适于应对大量对象

装饰器:动态的给对象添加一些额外职责

工厂方法:使一个类的实例化延迟到其子类

观察者:一对多,一个改变,其他自动更新

中介者:使耦合松散,独立改变之间的交互(对通信复杂)

状态:允许一个对象在其内部状态改变时改变他的行为

策略:定义了一系列算法,将每个算法封装起来,还可以相互替换,让算法独立变化

生成器:将复杂算法的构建与表示分离

四、典型例题



  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值