设计模式综合实例分析之数据库同步系统(一)

设计模式综合实例分析之数据库同步系统(一)最近有很多朋友跟我聊到关于“在软件项目开发中如何合理使用设计模式”的问题,希望我能够给出一些相对比较完整的真实项目实例,为了满足大家的要求,在后续文章中,我将

设计模式综合实例分析之数据库同步系统(一) 最近有很多朋友跟我聊到关于“在软件项目开发中如何合理使用设计模式” 的问题,希望我能够给出一些相对比较完整的真实项目实例,为了满足大家的要 求,在后续文章中,我将拿出几个较为复杂的实例与大家一起分享,有些项目是我 参与开发的,有些项目是在我的指导下开发的,希望能给大家带来帮助! 在此我也希望大家能够分享自己的一些设计模式使用心得和好的设计模式应用实 例,可以整理一份给我(可发送到邮箱:weiliu_china@126.com),在下一本设计 模式图书(有计划明年写一本《设计模式案例剖析》,暂定名)中我将选取部分实 例加入其中,如有入选者,Sunny承诺送签名图书两本, ,选择范围包括已经出版的《设计模式》、《设计模式实训教程》、《设计模式的 艺术》,还包括马上要出版的《C#设计模式》和正在编写的《UML建模实训教 程》,任君挑选,正版保证,假一罚十! 从本文开始,我将介绍一个数据库同步系统的设计方案,该系统是我在2010 年给某软件公司做设计模式内训时指导几位开发人员所开发的一个项目,系统以某 省级移动公司应急管理系统数据备份(数据库同步)需求为原型,基本需求如下: 为了在数据库发生故障的情况下不影响核心业务的运行,需要将生产数据库 定期备份到应急数据库,以备生产数据库发生故障时,能切换到应急数据库,保证 业务的正常运行。由于移动公司的数据量非常大,所以只需要对基础数据和关键数 据进行备份,为了确保切换到应急数据库时保证核心业务能够运行,还需要备份整 个数据库结构。 系统目前需求仅要求支持Oracle数据库的同步,但系统设计时需要考虑以后 可以方便地支持其他数据库。Oracle数据库的结构由各种数据库对象组成,要求 完成对各种数据库对象的同步,包括表(包括约束)、索引、触发器、分区表、视 图、存储过程、函数、包、数据库连接、序列、物化视图和同义词。各类数据库对 象的同步有一定的顺序关系,总体流程如图1所示:

腾讯文库设计模式综合实例分析之数据库同步系统(一)