AgileEAS.NET平台开发实例-药店系统-UI层重构技巧及其余

开篇

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

技巧,并不表明所有,确定还有不少的其余方面的技巧,你们均可以分享一下,我这里提出额也谈不上技巧,更多的是使用设计模式方面的总结吧。网站

        一、提高父类spa

        二、分离职责。.net

        三、抽象公共设计

大纲

         一、将每一个子类都用到的方法或属性进行提高到基类中。3d

         二、抽取公共方法。orm

提高父类

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

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

        下面咱们就来看看咱们在本药店系统是如何来作的:继承

         image

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

          image

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

          image

         二、这样咱们在具体的窗体控件中只须要继承自该用户控件便可:

          image

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

          image

          这样会减小咱们不少没必要要的工做,而且提升了可维护性,下降了重复代码的出现。

抽象控件绑定

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

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

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

         image

         二、由于药品类型在多个模块中出现,而且每一个模块中都是下拉列表的形式展现,因此咱们这里能够将这些多于2处的绑定,抽象出公共的绑定方法,咱们来看看该方法的

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

         image

        三、咱们来看看以下的二个方法:

         image

         image

         四、咱们能够将上述的红色部分进行抽象成单独的静态方法:

          image

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

          image

          image

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

          image

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

          image

          下面咱们来看看DataGridView的数据实体信息编辑后,若是不从新绑定来更新列表中的内容信息:

          image

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

           image

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

          image

          无疑经过上述的方式会下降不少出错的可能性,而且提升了代码的可维护性。

总结

        上面咱们分享了一些简单的界面开发过程当中的一些通用性的设计和抽取公共方法和提高父类等一些重构中的基本技巧,但愿能对你们有必定的帮助,固然因为本人的水平

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

药店系统源码

        download3

更多交流

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

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

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

一、邮箱方式:

魏琼东: mail.james@qq.com 手机:18629261335 博客:http://eastjade.cnblogs.com/

殷长波:549558408@qq.com 博客: http://www.cnblogs.com/onmyway/

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

二、QQ交流群:

AgileEAS.NET平台交流群:120661978(超级群)[新建]  AgileEAS.NET平台交流群:125643764(高级群)[新建]  AgileEAS.NET平台交流群:147168308(高级群)[新建]

相关文章
相关标签/搜索