实体类的动态生成(一)
前言 在应用开发中,通常都会涉及各种 POJO/POCO 实体类(DO, DTO, BO, VO)的编写,有时这些实体类还需要实现 INotifyPropertyChanged 接口以支持属性变更通知,一般我们都会手写这些代码或者通过工具根据数据库表定义抑或别的什么模板、映射文件之类的来生成它们。 但是,在业务实现中往往伴随着诸如“ 如何简单且高效的获取某个实体实例有哪些属性发生过变更? ”、“ 变更后的值是什么? ”这样的问题,而大致的解决方法有: 由实体容器来跟踪实例的属性变更; 改造实体类(譬如继承特定实体基类,在基类中实现这些基础构造)。 方法(1)需要配合一整套架构设计来提供支撑,也不是专为解决上述实体类的问题而设,并且实现和使用也都不够简单高效,故此略过不表。接下来我将通过几篇文章来详细阐述这些问题的来由以及解决方案,并给出完整的代码实现以及性能比对测试。 关于源码 下面将要介绍的所有代码均位于我们的开源系列项目(地址: https://github.com/Zongsoft ),项目主要采用 LGPL 2.1授权协议 ,欢迎大家参与并使用( 请遵照授权协议 )。而本文相关的源码位于其中 Zongsoft.CoreLibrary 项目的 feature-data 分支( https://github.com/Zongsoft/Zongsoft.CoreLibrary