读一些接口代码,或者是github上下载一些成熟的PLSQL包,经常会发现对底层数据多少都做了一些封装。
数据封装有几个好处:
1.代码可读性提高了;
2.数据结构发生变化时,代码更新工作可以最小化且集中化处理;
3.隐藏了底层数据结构,对商业保密起到一定作用。
下面以一个案例演示一下数据封装的过程:
在common用户下,我有一个T_LOG表用来记录程序运行日志,其结构如下:
为了将写日志的接口开放给其他用户,我创建了一个包头(PACKAGE SPECIFICATION),并把exec权限授权给另一个用户(dongfeng)
注意:这个包没有包体(PACKAGE BODY),没有毛病
接着把这些子类说明告知另外一个使用dongfeng用户的开发人员。
开发人员登录到dongfeng用户,对T_LOG表无法访问,不知道T_LOG表的数据结构(完成保密性)。
他看了类型说明,觉得看字面意思大致就能理解这些数据类型的意义了(代码可读性比较好),
然后写了一个匿名块来验证可用性
发现虽然没有T_LOG的访问权限,但这些类型都可以正常使用。
这个案例只演示了封装几个数据类型,完整的包和包体中还封装一堆常量、函数、程序,
只需要提供给开发人员的一个接口说明文档。