用序列化+单例模式实现数据持久化.ppt_第1页
用序列化+单例模式实现数据持久化.ppt_第2页
用序列化+单例模式实现数据持久化.ppt_第3页
用序列化+单例模式实现数据持久化.ppt_第4页
用序列化+单例模式实现数据持久化.ppt_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用序列化 单例模式实现数据持久化 什么是序列化 Serialization 序列化可被定义为将对象的状态存储到存储媒介中的过程序列化 对象的公共字段和私有字段以及类的名称 包括包含该类的程序集 都被转换为字节流 然后写入数据流反序列化 创建原始对象的精确复本为何使用序列化将对象的状态永久保存在存储媒体中 以便可以在以后重新创建精确的副本通过值将对象从一个应用程序域发送到另一个应用程序域中 XML序列化 将对象序列化到XML文档中和从XML文档中反序列化对象对象中的数据是用编程语言构造来描述的 如类 字段 属性 Property 基元类型 数组 甚至XmlElement或XmlAttribute对象形式的嵌入XMLXML序列化仅将对象的公共字段和属性值序列化为XML流 XML序列化不包括类型信息 二进制序列化 BinaryFormatter可以非常有效地为对象生成简洁的字节流 对于序列化将在 NETFramework上被反序列化的对象而言十分理想 即不需要移植 在反序列化一个对象时不调用构造函数如果需要可移植 需要用SoapFormatter代替Serializable属性不能被继承 即使父类有这属性 子类也必须手动添加 若一个对象中包含子对象 子对象也必须是Serializable 基本序列化 step1 定义一个支持序列化的类 Serializable publicclassMyObject publicintn1 0 publicintn2 0 publicStringstr null step2 将对象序列化到文件中MyObjectobj newMyObject obj n1 1 obj n2 24 obj str SomeString IFormatterformatter newBinaryFormatter Streamstream newFileStream MyFile bin FileMode Create FileAccess Write FileShare None formatter Serialize stream obj stream Close step3 在需要时从文件中反序列化对象IFormatterformatter newBinaryFormatter Streamstream newFileStream MyFile bin FileMode Open FileAccess Read FileShare Read MyObjectobj MyObject formatter Deserialize stream stream Close Here stheproof Console WriteLine n1 0 obj n1 Console WriteLine n2 0 obj n2 Console WriteLine str 0 obj str 所需引入的命名空间 usingSystem IO usingSystem Runtime Serialization Formatters Binary 将序列化用于教务管理系统 1 需要为所有Model和DAL层的元素打上 Serializable 属性标记忘记为对象或对象的一部分打上标记会导致反序列化出错 不能正确重构对象 将序列化用于教务管理系统 2 在DataAccess类中实现所有动态数据的保存和读取 单例模式 教师会查询选课信息 故需要访问TermCourseDAL对象 学生要选课 也需要访问TermCourseDAL对象如何保证他们访问的是同一个TermCourseDAL对象以保持数据的一致性 答案 单例模式 对同一个TermCourseDAL对象进行操作 什么是单例模式 单例模式最要关心的则是对象创建的次数以及何时被创建 单例模式的要点有三个 该类只能有一个实例 该类必须自行创建这个实例 类必须自行向整个系统提供这个实例 例 获取单一的CourseDAL对象 如果有数据文件 先从数据文件读取所有学生数据 否则就创建一个空的学生列表 其它需要改变的地方 DAL只被BLL层调用在BLL中不能直接创建DAL层

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论