Skip to Main Content
面向对象的思考过程(原书第5版)
book

面向对象的思考过程(原书第5版)

by 马特 魏斯费尔德
August 2021
Intermediate to advanced content levelIntermediate to advanced
450 pages
4h 46m
Chinese
Pearson
Content preview from 面向对象的思考过程(原书第5版)

2.1.3 一个接口/实现示例

我们来创建一个简单的(如果不是很实用的)读取数据库的类。我们将编写一些Java代码,这些代码会从数据库中获取记录。正如之前讨论的一样,在进行任何设计时,识别终端用户一直是最重要的问题。你可能需要做一些场景分析,与终端用户进行面谈,然后列出这个项目的需求。接下来是我们对这个数据库阅读器的需求:

·必须能打开到数据库的连接

·必须能关闭到数据库的连接

·必须能将光标指向数据库中的第一条记录

·必须能把光标指向数据库中的最后一条记录

·必须能得到数据库中的记录条数

·必须能知道当前数据库中是否仍有记录(当前指向的是否是最后一条记录)

·必须能够根据键值把光标指向特定的记录

·必须能够获取指定键值的记录

·必须能基于当前光标的位置获取下一条记录

根据以上需求,可以开始尝试设计一个读取数据库的类,为终端用户设计可能的接口。

在本例中,读取数据库的类仅提供给想使用数据库的程序员。因此接口本质上是程序员想要使用的应用程序编程接口(Application-Programming Interface,API)。这些方法其实封装了数据库系统暴露的功能。为什么要这么做?在本章的后面我们会详细讨论该问题。简短的回答是我们需要定制数据库功能。例如,我们必须处理对象从而可以将它们写入到关系型数据库中。编写这样的中间件对于设计和编码而言可能并不简单,但这是封装特性的真实示例。最重要的是,如果我们想替换数据库引擎,则无须修改大量代码。

图2.2展示了一个类图,表示了Data-BaseReader类的潜在接口。

请注意该类中的方法都是公共方法(请记住靠近方法名的加号表示该方式是一个公共接口)。而且这里只展示了接口,没有展示任何实现。请花一分钟来确定这个类图是否能大体满足上面列出的项目需求。如果你之后发现该类图没有满足所有需求也没关系。因为面向对象设计是一个迭代的过程,所以你无须一开始就保证它绝对正确。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Node与Express开发(第2版)

Node与Express开发(第2版)

Ethan Brown
Java并发编程实战

Java并发编程实战

Brian Goetz, Tim Peierls
计算机科学导论:跨学科方法

计算机科学导论:跨学科方法

罗伯特 塞奇威克, 凯文 韦恩
Istio 学习指南

Istio 学习指南

Lee Calcote, Zack Butcher

Publisher Resources

ISBN: 9787111684527