Perl编程:持久对象、面向对象概念及与Smalltalk对比
1. 持久对象
1.1 相关模块与资源
Leroy的Tangram模块可从 http://www.perl.com/CPAN/authors/id/J/JL/JLLE-ROY/ 获取,它为指定持久类提供了声明式方法。此外,《Perl Cookbook》有关于序列化、数据库访问和简单持久化的相关内容,《Advanced Perl Programming》也讨论了这些问题,并探索了面向对象持久化的另一种方法。
1.2 持久系统概述
持久系统能在程序的不同执行之间自动保存变量的内容。它需要具备识别、编码、存储、检索、解码和恢复数据的组件,同时还需要协调这些活动的机制。
1.3 变量识别
在Perl中,识别包变量最简单的方法是使用其完全限定名。或者,也可以使用特殊哈希的键为其对应的值提供唯一标识符。
1.4 数据编码与存储
CPAN提供了多个模块来自动对任意层次的数据结构进行编码和解码。主要的限制是,具有嵌套交叉引用的对象必须同时进行编码,以便模块能够检测并保留引用的相互关系。编码后,持久数据可以存储在平面文件或数据库中。
1.5 持久化粒度
- 粗粒度持久化 :仅在程序执行的开始和结束时恢复和保存持久变量的状态。这种形式的持久化可以完全自动化,但如果程序意外终止,可能会导致数据丢失。
- 细粒度持久化 :在程序开始时恢复持久变量的状
超级会员免费看
订阅专栏 解锁全文
6867

被折叠的 条评论
为什么被折叠?



