面向对象技术

面向对象技术

1. 面向对象基础

1.1 面向对象的基础概念

面向对象=对象+分类+继承+通过消息的通信

  1. 对象:属性+行为封装而成的整体
  2. 消息:对象之间进行通信的一种构造
  3. 类:一个类定义了一组大体上相似的对象。类是对象的抽象,对象是类的具体。分为(实体类,接口类(边界类),控制类)。
  4. 继承:子类和父类之间共享数据和方法的机制。
  5. 多态:不同对象收到同一消息产生的不同行为。
    1. 通用多态:不同类型值执行相同的代码
      1. 参数多态:用C++中的template来理解
      2. 包含多态:可以理解为接口
    2. 特定多态:不同的类型值执行不同的代码
      1. 过载多态:用C++中函数重载来理解
      2. 强制多态:用类型转换来理解
  6. 动态绑定:一个把过程调用和响应调用所需要执行的代码加以结合的过程。发生在运行时。静态绑定发生在编译时。
1.2 面向对象分析
  1. 认定对象
  2. 组织对象
  3. 对象间的相互作用
  4. 基于对象的操作
1.3 面向对象设计
  1. 面向对象设计的活动
    1. 识别类及对象
    2. 定义属性
    3. 定义服务
    4. 识别关系
    5. 识别包
  2. 面向对象设计原则
    1. 单一职责原则:一个类应该只有一个引起他变化的原因
    2. 开闭原则:软件实体(类,模块等)是可扩展,但是不可修改的
    3. 里氏替换原则:子类型必须能够替换他的父类型(is-a关系)
    4. 依赖倒置原则:抽象不依赖于细节,细节依赖于抽象。高层模块不应该依赖于底层模块,二者都应该依赖于抽象
    5. 接口分离原则:不应该强迫用户依赖于他们不用的方法
1.4 面向对象程序设计
  1. 继承和层次结构:理解构造函数与析构函数的执行顺序,继承方式的理解
  2. 对象,消息传递和方法
  3. 对象自身引用:this的理解
  4. 重置(覆盖):虚函数的理解
  5. 类属:template的理解
  6. 无实例的类:抽象类,纯虚函数的理解
1.5 面向对象测试
  1. 算法层
  2. 类层
  3. 模板层
  4. 系统层

2. UML(这里讲概念,怎么画会放在专门的文章)

UML=事物(对模型的抽象)+关系(事物间联系)+图(聚集相关的事物)

2.1 事物
  1. 结构事物:通常是模型的静态部分(名词),描述概念或物理元素
  2. 行为事物:通常是模型的动态部分(动词),,描述跨越时间和空间的行为
  3. 分组事物:模型中的组织部分。纯粹是概念上的东西(只在开发时存在)
  4. 注释事物:模型的解释部分,用来描述,说明和标注模型的任何元素
2.2 关系
  1. 依赖:两个事物间的语义关系,一个事物发生变化可能会影响另一个
  2. 关联:一种结构关系,描述了一组链,链是对象之间的连接。聚集是一种特殊类型的关联,描述了整体和部分之间的结构关系。
  3. 泛化:一种一般与特殊的关系。特殊元素可以替代一般元素。
  4. 实现:类元之间的语义关系,其中一个类指定了由另一个类保证执行的契约。
2.3 图

UML有很多图,会放在专门文章具体介绍。

3. 设计模式

设计模式的核心在于提供一类问题的解决方案,避免重复劳动

3.1 设计模式的要素
  1. 模式名称:一个助记名,就是模式的名字啦。
  2. 问题(动机):描述了应该在何时使用模式
  3. 解决方案:描述设计的组成成分,他们之间的关系,职责和协作方式
  4. 效果:描述模式应用的效果以及模式应该权衡的问题
3.2 父类

大体上设计模式可以分为

  1. 创建型:与对象的创建有关
  2. 结构型:处理类或对象的组合
  3. 行为型:对类或对象怎样交互和分配职责进行描述

设计模式有很多(一般认为Gof23个设计模式是主流),会放在专门的文章介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值