数据抽象-做什么重于怎么做

来源:互联网 发布:能写作的软件 编辑:程序博客网 时间:2024/04/29 21:59

7.2数据抽象

1.数据结构强调具体实现

  抽象数据类型强调抽象接口

2.用户不应该知道也不必知道他的具体实现。只能通指定接口进行 暗箱操作。这样经过数据抽象,队列的本质特征有API 展现。非本质特征

屏蔽于客户的视野之外

3.许多程序员都有一个通病:重实现,轻接口,在编写代码时表现为:不等接口设计好就难忍开始大干。在阅读代码的时候表现:看到API

文档便昏昏欲睡。看到代码就两眼放光。针对接口编程而不是实现

4.不同的内部数据结构导致不同的算法

   OOP提倡以数据为中心来组织算法逻辑

5.以接口为中心就设计而言的。强调对象的行为以及对象之间的交互。不关心底层的实现细节  OOD

  以数据为中心是就实现而言,强调算法对数据的依赖性,以别于过程式以算法为中心的风格   OOP

  分析阶段的主要目的是描述问题而非解决问题。OOA的关键是从问题领域中抽象出以对象为基础的概念模  OOA

  OOA 以对象而非过程  OOA以接口而非实现  OOP 以数据而非算法

6.作为一个合格的程序员,写出的代码不仅要合法,还要合理。合法指合乎语法。合理指合乎语义。既然用到队列这个数据结构。当然要遵循

其使用规范。打个比方。法律只是维护社会秩序的最低限度规范。一个只遵守法律而不遵守通用规范的人必定与社会格格不入

   合法合理,比如把queue_add 和 queue_delete的实现代码相互互换。此合法不合理

   不合理是指实现者违背了规范抽象的承诺。合法是指编译器无法识别这种违法的行为

   契约式设计中最大作用。便是违法代码尽早地路出马脚,将bug消灭于萌芽状态

7抽象有层级,有角度,有级别。不同的角度,视角,方向

8.抽象--尤其是数据 --才是OOP的核心,没有抽象作为基础,封装,继承,多态

原创粉丝点击