将TDataSource创建为数据绑定(bind)组件和实际基础TDataSet之间的中介的背后原因是(或将是)什么原因,而不是让这些组件直接直接连接到TDataSets本身?
这似乎是一个愚蠢的问题,但是我正在研究各种各样的“数据查看器”组件,这些组件链接到常见的“数据连接器”组件,等等。在设计这组组件时,我发现自己引用了经典的Delphi“TDataSet-> TDataSource-> Data-bound-component”设置的结构作为指导。但是,在我的组件集中,我一直希望将“TDataSource”和“TDataSet”等效项的功能本质上合并到一个类中。让我想知道首先分离它们的原因是什么。
最佳答案
这一切都与decoupling和indirection有关。
有了TDataSource,它们有两种:
由于许多组件可以指向同一个数据源,因此您只需翻转一个TDataSource.DataSet属性即可快速切换它们使用的基础TDataSet。