代码大全学习笔记2

第六章

成为高效程序员的关键就在于,当你开发程序任一部分的代码时,都能够安全地忽视程序中尽可能多的其余部分。

类的基础:抽象数据类型(ADTs)

  1. 抽象数据类型是指一些数据以及这些数据所进行的操作的集合;
  2. 构建的抽象数据类型即类,它具有内部的数据,以及向外界提供一些能使外界了解自己的方式以及改变自己的方式;也就是说构建出来的类,或者以一种面向对象的方式来编程的时候,构建的数据就是抽象出来的这个对象的一些属性,由于这些属性是这个对象自己独有的,所以这个对象会提供一些方式去获取或者改变这些属性,这些方式就是对象中的函数(这是我阅读这一部分的自己的理解);

使用ADT的益处

  1. 可以隐藏实现细节,隐藏细节的好处就是当你进行代码修改的时候,能够在尽量降低相关性的情况下进行最少的修改;
  2. 改动不会影响到这个程序;
  3. 让接口能够提供更多信息,如果用函数而不是用变量直接去定义的话,就能够在语义上提供更明确的说明,使代码更具有可读性;
  4. 更容易提高性能,如果想提高某个字体的性能,只需要编写一些更好性能的子程序,而不需要修改整个程序;
  5. 让程序的正确性显而易见;
  6. 程序更具有自我说明性;
  7. 无需在程序内到处传递数据;
  8. 你可以像在现实世界中那样操作实体,而不用在底层实现上操作它;

在非面向对象环境中用ADT处理多份数据实例

  1. 一般来说,这就意味着你要为ADT添加一些用来创建和删除实例的服务函数,同时需要重新设计ADT其他服务操作,使其能够支持多个实例;
    在这里插入图片描述
  2. 三种处理ADT接口的方法:
    方法一 每次使用ADT服务子程序都明确地指明实例,相当你的ADT服务子程序提供创建删除管理实例的函数,这样你就可以通过函数去创建实例,然后通过实例去操作其所对应的属性;
    方法二 明确地向ADT子程序提供所要用到的数据,相当于你创建了一个结构体或者什么东西来代替类,当需要操作函数的时候需要将这个你创建的东西传给操作函数,让函数知道你操作的是哪个实例;(这种方法其实就是第一种方法去掉管理实例的函数,自己去定义,这种情况下就会向外界提供更多的隐藏信息,这是缺点)
    方法三 使用隐含实例(需要加倍小心),意思就是通过函数可以将实例设置为当前实例,在未修改实例之前,你调用所有的相关函数,都是运用的这个当前实例的属性(不推荐使用);

猜你喜欢

转载自blog.csdn.net/u012850592/article/details/89425487