b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

设计模式综合实例分析之同步系统(一):同步系统概述,建造者模式,简单工厂模式

电脑杂谈  发布时间:2019-07-05 13:09:22  来源:网络整理

库模式是什么_植物库模式_移动设计模式库

作者:Liuwei-Sunny

出处:https://blog.csdn.net/lovelion

最近有很多朋友跟我聊到关于“在软件项目开发中如何合理使用设计模式”的问题,希望我能够给出一些相对比较完整的真实项目实例移动设计模式库,为了满足大家的要求,在后续文章中,我将拿出几个较为复杂的实例与大家一起分享,有些项目是我参与开发的,有些项目是在我的指导下开发的,希望能给大家带来帮助!在此我也希望大家能够分享自己的一些设计模式使用心得和好的设计模式应用实例,可以整理一份给我(可发送到邮箱:[weiliu_china@126.com][weiliu_china_126.com]),在下一本设计模式图书(有计划明年写一本 《设计模式案例剖析》,暂定名)中我将选取部分实例加入其中,如有入选者,Sunny承诺送签名图书两本,选择范围包括已经出版的 《设计模式》、《设计模式实训教程》、《设计模式的艺术》,还包括马上要出版的 《C#设计模式》 和正在编写的 《UML建模实训教程》,任君挑选,正版保证,假一罚十!

市各专项指挥部办公室、相关部门和各区逐步建立完善应急管理信息资源库,建立各类风险与隐患监控、、应急预案库、应急专家库、应急队伍库、应急物资库、应急避难场所库、辅助决策知识库,做到及时维护更新,确保数据的质量,实现对突发事件应急指挥的辅助决策与支持。对于保存在“我的文档”里的个人创作数据,例如工作类的office文档等,这部分数据是最重要的数据,不仅仅应该备份,还应该进行文件版本备份,因此建议这个重要文件夹使用具有文件版本功能的同步盘来进行备份和同步,例如dropbox等,将dropbox的主目录设置为“我的文档”目录,可以实现个人数据的同步和备份。如果配置没有错误,接下来rsync将自动去服务端(即a系统)将需要备份的数据拉取同步数据到客户端(即b系统)。

为了在发生故障的情况下不影响核心业务的运行,需要将生产定期备份到应急,以备生产发生故障时,能切换到应急,保证业务的正常运行。由于移动公司的数据量非常大,所以只需要对基础数据和关键数据进行备份,为了确保切换到应急时保证核心业务能够运行,还需要备份整个结构。

系统目前需求仅要求支持Oracle的同步,但系统设计时需要考虑以后可以方便地支持其他。Oracle的结构由各种对象组成,要求完成对各种对象的同步,包括表(包括约束)、索引、触发器、分区表、视图、存储过程、函数、包、连接、序列、物化视图和同义词。各类对象的同步有一定的顺序关系,总体流程如图1所示:

201906152001219_1.png

移动设计模式库_植物库模式_库模式是什么

图1 同步流程图

同步系统界面如图2所示:

20190615200127_2.png

图2同步系统界面

用户在操作界面指定源、目标、控制(用于读取配置信息)的连接串,同时选取需要同步的对象类型,对象类型存储在配置文件database_syn_config.xml中,通过输入SQL语句可以获取需要同步的表数据。

对象同步的处理逻辑描述如下:

(1) 对于一般的对象,同步时先取出源与目标该类对象进行对比,然后将对象更新到目标。

库模式是什么_植物库模式_移动设计模式库

(2) 对于DBLink对象,由于环境发生变化,需要手工调整,同步过程只记录新增的DBLink信息,而不执行创建操作。

对于关系型,由于一般的需求是只离线同步一段时间的数据(比如凌晨把当天的订单数据同步到hbase),所以需要在数据切分时(按照行数切分),会多线程扫描整个表(及时建索引,也要回表),对于表中包含大量的数据来讲,io很高,效率非常低。调度执行rsync增量同步程序,通过网络nfs方式对备份系统集群各节点的数据文件目录进行增量同步传输。因为视图与中存在的表不太一样,前面我们创建的4张表都是包含数据的,如用户信息,订单信息等,而视图则是不包含数据的,下面通过一个例子来演示视图,下面的sql是查询王五的所有订单情况,需要关联到orders表、orderdetail表、items表、user表。

(I) 增量同步。适用于可确定最后修改时间戳字段的情况。

事务一致性:在复制目标端需要按照源端相同的事务环境进行提交,确保目标上数据一致性。你能够不用连接源表和目标表就把源表的数据插入到目标表中.这对于你想插入所有行到目标表时是非常有用的. oracle 10g现在支持在on条件中使用常量过滤谓词. 举个常量过滤谓词例子on(1=0). 下面例子从源表插入行到表products, 不检查这些行是否在表products中存在:。你能够不用连接源表和目标表就把源表的数据插入到目标表中. 这对于你想插入所有行到目标表时是非常有用的. oracle10g现在支持在on条件中使用常量过滤谓词. 举个常量过滤谓词例子on (1=0). 下面例子从源表插入行到表products,不检查这些行是否在表products中存在:。

(III) 临时表方式。用于最大限度保证数据的完整性,是一种在发生意外情况时,不丢失数据而使用的较为复杂的方式。

由于对结构修改无法做事务回滚,因此如果后面的步骤发生异常,需要通过手工编码方式来实现目标结构变化的回滚。

datagridview是winform中非常灵活的一个控件,对于扩展其折叠功能的控件在网上已经有很多文章,但是只简要介绍了实现的方法,没有继续封装其他方法,比如数据绑定和增删功能,都需要在后置代码自己编写,加之复杂的业务逻辑,让代码显得冗余且不易复用。 传统形式的 gibbs 模型多以空间灰度信息的线性干涉关系为描述基础,由于实际图像中空间灰度信息的非线性关系,这类模型在诸如多纹理分割这样的应用中,有较大的局限性。首先将需要创建的各种不同对象(例如各种不同的 chart 对象)的相关代码封装到不同的类中,这些类称为具体产品类,而将它们公共的代码进行抽象和提取后封装在一个抽象产品类中,每一个具体产品类都是抽象产品类的子类。

移动设计模式库_植物库模式_库模式是什么

1. 建造者模式

在本系统实现时提供了一个同步流程管理器DBSynchronizeManager类,它用于负责控制同步的具体执行步骤。用户在前台界面可以配置同步参数,程序运行时,需要根据这些参数来创建DBSynchronizeManager对象,创建完整DBSynchronizeManager对象的过程由类DBSynchronizeManagerBuilder负责,此时可以使用建造者模式来一步一步构造一个完整的复杂对象,类图如图3所示:

20190615200127_3.png

图3建造者模式实例类图

在图3中省略了抽象建造者,DBSynchronizeManagerDirector充当指挥者类,DBSynchronizeManagerBuilder充当建造者,DBSynchronizeManager充当复杂产品。

2. 简单工厂模式

DBSynchronizeManagerBuilder类的buildLife()方法可以创建一个初始的DBSynchronizeManager实例,再一步一步为其设置属性,为了保证在更换时无须修改DBSynchronizeManagerBuilder类的源代码,在此处使用简单工厂模式进行设计,将类型存储在配置文件中,如下片段代码所示:

植物库模式_库模式是什么_移动设计模式库

   ……
   <dbSynchronizeManager dbType="oracle" class="com. chinacreator.dbSyn.oracle.OracleDB SynchronizeManager"/>
   ……

类图如图4所示:

20190615200127_4.png

图4简单工厂模式实例类图

使用简单工厂模式设计的工厂类DBSynchronizeManagerFactory代码如下所示:

   public class DBSynchronizeManagerFactory {
     public static DBSynchronizeManager factory(String dbType) throws Exception {
       String className = DBSynConfigParser.getSynchronizeManagerClass(dbType);
       return (DBSynchronizeManager)Class.forName(className).newInstance();
     }
   }

operation(抽象产品角色):它是工厂类所创建的所有对象的父类,封装了各种产品对象的公有方法,它的引入将提高系统的灵活性,使得在工厂类中只需定义一个通用的工厂方法,因为所有创建的具体产品对象都是其子类对象。3、将创建工作延迟到子类中后,核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂,只提供工厂子类必须实现的接口,这样的好处是可以不用修改已有的工厂类的情况下增加新的产品(每一种产品移动设计模式库,都分别对应相应的工厂子类负责其创建工作)。tomatoscrambledeggs和shreddedporkwithpotatoes类:充当具体产品角色,实现抽象产品类对定义的抽象方法,由具体工厂类创建,它们之间有一一对应的关系。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-110651-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...