面向对象技术的基本原则

  1. 抽象:abstraction 抽象是事物区别其他事物本质特征的过程。(定义一个什么样的类)
    是一个分析和理解的过程
    抽象的结果取决于使用者的目的。
    包括使用者所感兴趣的内容,忽略掉其他不相关的内容。

举例:对于同一群人,不同的人抽象的结果不同
如公安部 对这一群人 抽象的结果就是 人 普通的公民
在医院做检查时,男女的区别很大,抽象的结果是男 女
在公司或者学校这个场景 抽象的结果为老板 员工, 老师 学生。

抽象取决于项目的上下文(需求)

  1. 封装:encapsulation : 封装是对客户(使用者)隐藏其细节
    用户关心产品提供的接口,而不用关心其实现细节。
    通过封装来实现信息和数据隐藏

举例:我们使用遥控器 控制电视,只需要知道遥控器的按钮可以控制电视即可,而无需知道遥控器设计的细节,遥控器的构造由其外壳封装,一般由稳定的东西封装不稳定的东西。让使用者操作起来不会太困难。

结构化程序设计中, 程序 = 数据结构 + 算法
但是 难以保证数据一致性

举例: 比如 定义一个员工,C语言使用结构体 ,则该员工的结构体信息容易被篡改,而使用java中的私有化关键字来修饰所需的属性,再使用 get set 方法来操作属性,避免了数据被任意篡改。

封装的可见性问题:四个层级:
public package protected private 表示了数据封装的程度。

  1. 分解:decomposition
    分解是指将一个单一的大的复杂系统分解为若干个不同的小构件。分解的构建通过抽象 封装等技术形成相对独立的单元,然后删繁就简,分而治之。

结构化方法中通过 函数 模块进行 分解

面向对象方法中 通过 类 对象 打包 分层

  1. 泛化: generalization
    泛化是类之间"是的关系" ,意思是一般化,该关系是:一个类可以继承其父类的结构和行为。可以用继承来实现。
    可以分为单一继承,和多重继承。
    子类可以继承父类一切的对象东西 但仍然受到封装性的约束。
    子类可以添加新的属性和方法 并且重新定义父类的方法(方法重写)

设计继承层次:继承父类并扩展。

  1. 多态:多态是面向对象技术的本质特征,同一个外表下(接口)有不同的行为。举例:一个USB接口 可以插U盘,鼠标等不同。

多态体现了 接口的通用性,有效了解决了需求变更的问题。多个实现类,都可以通过同一行代码来实现。

举例:我们要调用三角形的画图方法,但是原来代码没有,我们就要重新修改很多代码。但有了接口的话,(左父右子)用接口名来调用方法即可 。

  1. 分层: Hierachrcy: 面对不同的目标建立不同的抽象级别层次,从而在不同的抽象级别层次进行分解。进一步简化对系统的理解。
    先分层再分解
    两种分层结构:
    类分层结构 : 泛化关系 ,类继承结构
    对象分层结构: 对象间组成结构,大的对象由小的对象组成。

  2. Reuse(复用);
    通过已有的软件知识来构建新的软件
    软件可以看成具有独立功能的各个组件的结合体
    编写新的软件可以看成 这些构件的结合体。

应用复用原则:代码复用 设计复用 架构复用(ssh ) 需求复用 领域复用
在特定领用设计需求使,也要考虑更大粒度,更高层次的复用。
考虑到通用性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值