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

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

总结

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

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






本文转自何戈洲博客园博客,原文链接:http://www.cnblogs.com/hegezhou_hot/archive/2011/04/01/2002703.html,如需转载请自行联系原作者

目录
相关文章
|
4月前
|
存储 开发者 容器
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
本文介绍了ArkTS语言中的Class类、泛型、接口、模块化、自定义组件及状态管理等核心概念,并结合代码示例讲解了对象属性、构造方法、继承、静态成员、访问修饰符等内容,同时涵盖了路由管理、生命周期和Stage模型等应用开发关键知识点。
394 1
鸿蒙 HarmonyOS NEXT星河版APP应用开发-ArkTS面向对象及组件化UI开发使用实例
|
7月前
|
JavaScript 前端开发 UED
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发四
本文介绍了Web组件开发与性能优化的相关内容。在Web组件开发部分,涵盖创建组件、设置样式与属性、添加事件和方法以及场景示例,如动态播放视频。性能提升方面,推荐使用数据懒加载、条件渲染替代显隐控制、Column/Row替代Flex、设置List组件宽高及调整cachedCount减少滑动白块等方法,以优化应用性能与用户体验。
276 56
|
7月前
|
编解码 UED 开发者
【HarmonyOS Next之旅】基于ArkTS开发(二) -> UI开发之常见布局
本文主要介绍了自适应布局与响应式布局的相关内容。自适应布局部分涵盖线性布局、层叠布局、弹性布局和网格布局,详细说明了各布局的特性及使用方法,例如线性布局中的排列、拉伸与缩放,弹性布局的方向、换行与对齐方式等。响应式布局则重点讲解了栅格系统和媒体查询,阐述如何通过栅格组件和媒体查询条件实现不同设备上的适配效果。这些技术帮助开发者灵活应对多尺寸屏幕的设计需求,提升用户体验。
376 55
|
7月前
|
JavaScript 前端开发 开发者
09.HarmonyOS Next数据驱动UI开发:ForEach与动态渲染完全指南(上)
在现代前端开发中,数据驱动UI已成为主流开发范式。HarmonyOS Next的ArkTS语言和声明式UI框架完美支持这一理念,使开发者能够以更高效、更直观的方式构建复杂应用。
218 1
|
Java C# 开发工具
.Net码农学Android---系统架构和基本概念
原文:.Net码农学Android---系统架构和基本概念 至此,你应该已经完成以下前期准备事情: 1.安装完JDK 2.安装完SDK(并在Manager中进行相关版本的更新) 3.相关IDE(如eclipse) 4.安装完ADT 5.安装完AVD(如果你是真机模拟的话也可以不安装) 前期环境搭建基本完成,并按照网上的教程可以运行出HelloWorld,确保可以流程走的通。
1065 0
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
384 5
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
459 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
245 7
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
284 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
213 0