唠叨 一种用于保持 UI显示的数据、内存中的数据列表、DB中的数据 三者协调统一的 处理思路 (不知这样做可行嘛?望指教!)
时间:2010-09-18 来源:誓言
///
///分类、标签列表处理方式大致思路:
/// 其实、像这样的基于ADO.NET的程序主要就是数据库的CURD操作,再其次就是UI显示的数据显示及时更新,如果像
///我这样的处理方式(使用了内存缓存数据列表、减少了数据库的读写次数)还要及时的更新内存数据列表中的数据,
///也就是说需要做到UI、内存数据列表、数据库三者的数据保持统一、这也是整个系统上的逻辑的终点所在,下面
///我就简单的说一下,处理这种数据统一的方式。
/// 在我看来“数据统一”这个名词的概念就是:当UI、内存数据列表或者是数据库中的任何一条记录发生改变的时候,
///其他两者中的对应数据也要“随之改变”,为了实现这种“随之改变”,我借助了一种触发思想来实现这种效果,
///我想触发这种概念其实并不陌生,在数据库中有触发、在.NET下有事件的触发、在WPF中这种触发的概念体现的更加的
///淋漓尽致。
///
/// 在整个程序中、我使用触发思想的位置大致有如下几处:
/// 1、在实体类中、使用属性 和 委托,在set访问器下执行委托,通知外部内存数据列表中的数据发生了改变,以便
/// UI与数据库去更改相应的数据。
///
/// 2、在更改UI显示的方法里、嵌入执行改变数据库的代码,并且在方法传入参数中增加一个布尔类型变量,以便通知
///通知方法内部是否执行操作数据库的代码(因为有些数据的改变并不需要执行操作数据库的代码)。
///
/// 在上述的两个触发的基础上可以做到如下:【内存数据列表】发生改变 触发 【UI显示的数据】改变,而恰好在
/// 更改UI显示的方法里又嵌入了操作数据库的代码、去更改【数据库中的数据】,
///使内存数据列表、UI、数据库三者数据保持了统一。
///
也不知道这样做可行嘛? 或者说那些弊端,望大侠们指教。
谢谢!