zoukankan      html  css  js  c++  java
  • AgileEAS.NET平台开发实例药店系统UI层重构技巧及其他

    开篇

            上篇我们讲述了UI层的分析,那么本篇我们就讲述下我们在做CS应用程序的过程中的一些技巧性的东西,可能我这里总结的只是我再开发本药店系统中应用的到的一些小

    技巧,并不代表全部,肯定还有很多的其他方面的技巧,大家都可以分享一下,我这里提出额也谈不上技巧,更多的是使用设计模式方面的总结吧。

            1、提升父类

            2、分离职责。

            3、抽象公共

    大纲

             1、将每个子类都用到的方法或属性进行提升到基类中。

             2、抽取公共方法。

    提升父类

            关于这个技巧我想大家都会是比较清楚的,就是将子类中都有的属性或者方法等放在一个基类中,然后具体的子类继承自该类,书写一些具有自身特性的功能,这样能够

    充分发挥面向对象的继承技术来达到复用的目的,不但提高了程序的可维护性,而且提高了可读性。我想大家对这个都很熟悉。

            下面我们就来看看我们在本药店系统是如何来做的:

             image

             上面我们能看到整个系统的核心就是基于药店的库存管理为主线进行具体的不同的业务流线来展开的,我们来总结下这些模块需要具备的功能,我们这里进行抽象。

              image

              这样,我们通过新建一个UserControl控件将这类控件都提供上述的功能。

              image

             2、这样我们在具体的窗体控件中只需要继承自该用户控件即可:

              image

             3、我们来看看基类中定义的打印报表方法的使用:

              image

              这样会减少我们很多不必要的工作,并且提高了可维护性,降低了重复代码的出现。

    抽象控件绑定

            今天有很多的同仁给我建议,让我把数据绑定控件进行抽象,这样能够减少很多重复代码的出现,不错,的确是这样的,这样也有很多的好处,防止因为多个地方的副本

    出现后就要同步修改很多的地方,这样无疑会加大我们的工作量,并且也会让我们的维护的工作量大增。我们这里就来总结下药店系统中的一些公用的控件绑定方法抽象。

             1、将常用的下拉列表的绑定书写出通用的方法。当然这里没有完全的抽象,只是说是把常用的方法写到一个类中,通过静态方法的形式来访问。

             image

             2、因为药品类型在多个模块中出现,并且每个模块中都是下拉列表的形式展示,所以我们这里可以将这些多于2处的绑定,抽象出公共的绑定方法,我们来看看该方法的

    具体实现。也是比较的简单。

             image

            3、我们来看看如下的二个方法:

             image

             image

             4、我们可以将上述的红色部分进行抽象成单独的静态方法:

              image

             接着我们来看看后2个方法中具体的调用步骤。

              image

              image

              这样就达到了复用的目的,下面我们来看看GridView的绑定和新增数据列时我们都可以写一些通用的方法。

              image

              我们来看看抽象成泛型方法的具体实现类:

              image

              下面我们来看看DataGridView的数据实体信息编辑后,如果不重新绑定来更新列表中的内容信息:

              image

              我们来看看原来的Datagridview的行信息更新的方法。

               image

              使用上述的公共方法后,代码的调用如下:

              image

              无疑通过上述的方式会降低很多出错的可能性,并且提高了代码的可维护性。

    总结

            上面我们分享了一些简单的界面开发过程中的一些通用性的设计和抽取公共方法和提升父类等一些重构中的基本技巧,希望能对大家有一定的帮助,当然由于本人的水平

    有限,可能还有更好的方法或者更好的解决问题的思路,还请大家指出,谢谢。

    药店系统源码

            download3

    更多交流

    官方博客:http://www.smarteas.net/

    官方网站:http://www.agilelab.cn/

    如果您在使用AgileEAS.NET开发平台中有什么问题,请使用如下几种联系方式或者沟通方式。

    1、电话-邮箱方式:

    何戈洲hegezhou_hot@163.com 手机:18691480181 博客:http://www.cnblogs.com/hegezhou_hot/

    2、QQ交流群:

    308961614 网名:H.O.T

  • CallHot

反馈文章质量,你可以通过快速通道评论:
查看全文
  • 相关阅读:
    Hive 中parse_url的使用
    作为首席架构师,我是如何选择并落地架构方案的?
    漫谈数据仓库之拉链表(原理、设计以及在Hive中的实现)
    纸上得来终觉浅
    年薪50万的大数据分析师养成记【摘抄】
    如果有人问你数据库的原理,叫他看这篇文章(完)
    开源大数据引擎:Greenplum 数据库架构分析
    【阿里在线技术峰会】李金波:企业大数据平台仓库架构建设思路
    ETL Automation完整安装方法_(元数据存放在mysql数据库)
    js定时器 离开当前页面任然执行的问题
  • 原文地址:https://www.cnblogs.com/hegezhou_hot/p/2002703.html
  • Copyright © 2011-2022 走看看