• 基于MVC设计模式的两种软件架构简介


    第一种模式,可处理组合命令,具有撤销(Undo)和重做(Redo)功能,支持多种数据库类型

     
     
    1.Action采用组合模式,既可以代表一个简单的动作,也可以代表一组动作组合。
    List<Action> Cmd代表要执行的任务,可拆解成一个或一组动作(Action)。

    以数据库操作为例:
    1.1 执行一个简单的插入命令,只需要创建一个插入Action即可;
    1.2 若要实现一个复杂的事务(一组增删改操作),则可将这些增删改的Action创建成一个复合Action;
    1.3 若要实现简单的搜索,只需创建一个查询Action即可;
    1.4 若要实现级联查询,则需要创建一个复合查询Action,即父查询Action添加与之级联的子搜索Action,组合成一个复合查询Action。
    PS:若业务逻辑很简单,Control可直接调用Dao;

    2.List<Action> Undo和Redo,用于实现Undo(撤销)和Redo(重做);具体实现需要Action配合。

    3.Action执行任务采用命令模式,真正的执行在IDao对象执行(命令与实现分离,易于扩展),IDao对象采用抽象工厂模式创建。

    4.ConcreteDao实现IDao接口,侧重增删改查的逻辑实现,具体实现由DBHelper执行。
     
    优点:
    1.Action可以表示的动作很多,可扩展性强;
    2.使用抽象工厂模式,容易转换数据库操作;
    3.Control类可以实现Redo和Undo操作,并且支持事务(一组Action 或 复合Action)
     
    缺点:
    1.有多个接口,实现相对复杂;
     
    B.侧重数据库操作的版本(未显示view)
    1.定义IBaseDao接口,可将单一dao对象组合成复杂dao(多个dao共享数据库连接);
    2.灵活的搜索条件(SearchCond),可设置单一和组合的搜索条件,应用于级联搜索;
    3.支持不同的数据库操作实现。
     

    1.IBaseDao定义了基本的Dao操作接口,并且可实现组合方式,父Dao添加子Dao后,只需父Dao打开和关闭数据库连接即可,实现共享父Dao的数据库连接等资源。

    2.SearchCond定义了搜索条件,可灵活地增加和删除搜索条件,并支持组合方式。
    使用SearchCond即可满足搜索单表查询要求;
    当级联搜索时,子表的搜索条件可添加到父表的搜索条件中,作为一个符合的搜索条件ConcreteCond。

    3.ADOBaseDao和OCIBaseDao实现IBaseDao的接口,为其子类提供基础服务。(类和接口继承)

    4.使用IDao,可以面向接口编程,可以灵活地切换Dao的具体实现方式。
     
  • 相关阅读:
    Java集合:HashMap底层实现和原理(源码解析)
    Java获取异常堆栈信息
    win7 64位系统 PB连接oracle数据库出现“oracle library oci.dll could not be loaded”问题的解决方法
    Oralce 使用递归方式获取BOM树显示结构
    Oracle 链接数据库语句
    根据数据窗口某列的值定位行
    pb中数据窗口filter函数和retrieve函数的区别和联系
    用代码保存共享文件夹登录名和密码
    PB 组合数据窗口子窗口数据赋值方法
    PB 导出PDF
  • 原文地址:https://www.cnblogs.com/hikeepgoing/p/5116272.html
Copyright © 2020-2023  润新知