`
leonardleonard
  • 浏览: 801706 次
社区版块
存档分类
最新评论

ASP.net 中的页面继承实现和通用页面的工厂模式的实现

阅读更多
最近用.Net做web项目的时候遇到了一些问题,就是很多的页面的处理一样的,不一样的就是我们写的存储过程不同,为了考虑代码的重复利用和可维护性和可

扩展性,于是写了一个对于单据页面的工厂模式,采用界面的继承技术,因为我们写的ASP.net页面的是代码后置的,所以我们继承的时候就继承我们的后置的代码,也就是我们说的XXXX.aspx.cs文件。其实页面的继承和我们普通的类继承一样,只是ASP.net页面的界面是HTML和后置代码共同组成的,所以也有一些不同,好了先进开始我们的ASP.net页面继承之旅:

我在这里总结了一幅在.net环境下用Rational XDE生成的UML图给大家一个直观感性的认识,我先来讲解一些这副图中的类和它们的关系,BillFactory类是我定义的单据工厂它来识别产生那种单据,VirturBillCOM是一个虚拟类(也可以是接口)它定义了一些方法让继承它的类来实现,IssueBillMng_Frm和IssueBill_Frm是页面的后置代码类,负责页面的一些操作比如,按钮状态,调用业务逻辑等,BillInstorageMngList和IssueBillMng分别继承VirturBillCom虚拟类来实现业务处理调用数据存储层等,BillInstorageMngList负责入库单的处理,IssueBillMng负责出库单的处理。BillEntity和BillItemEntity是数据库映射的实体类。BillInstorageMng继承了页面类IssueBillMng_Frm,BillInstorage继承类页面类IssueBill_Frm,大家可以看到,BillInstorageMng类和BillInstorage类由于继承类页面类,所以他们的类中只有一个空的构造函数,其他的都可以由它的父类处理,在这里大家可能要问,这样就可以完成页面的继承了吗?,呵呵,这只是其中的一步,为了达到和父类的页面显示同样的效果,必须把父类中的HTML拷贝到子类的HTML中,这样界面的显示一样了(如果你要改动一下界面可以在子类界面的HTML中改动添加按钮等),但是有个问题是,在.net设计器中拷贝HTML到子类的页面时,进入该子页面的后置代码的时候会自动的添加页面上的服务器控件在变量声明的地方,我们可以想象,这些控件在父类已经存在了而且默认为保护类型为protected 所以子类也可以看到,所以控件就会重复,就很出错的,必须在子类中把父类已经用的控件变量删除掉,如果子类自己想有其他的操作可以自己加入控件,但变量不能和父类重复。这样很简单就完成了页面的继承,大家可以试试,它可以减少很多的重复的代码。

还有就是我想说的就是BillInstorageMngList类和IssueBillMng类,他们都继承VirturBillCom实现了VirturBillCom定义的函数,他们是中间层,所以我们在页面中调用的时候可以直接调用VirturBillCOM,具体真正的实现哪个实例由BillFactory来实现,这样可能还有不明白的,具体的说在IssueBillMng_Frm的构造函数中(页面的构造函数默认是没有的,我们的自己加)声明一个VirturBillCOM 的实例如:mgrObr = BillFactory(this);用工厂来判断实例那个中间层变量来完成不同的工作。这就是简单工厂模式,大家有不明白的可以看看设计模式。好了今天就说到这,有什么不明白的可以在探讨,虽然我的表达可能有些地方不太清楚,大家可以好好看看这副图,是典型的工厂模式图,好啦该下班回家了。祝大家晚间愉快。

作者:moshangchen 

分享到:
评论

相关推荐

    ASP.net系统模板页面

    首先,模板页面(Master Page)是ASP.NET中的一个重要概念,它提供了一种方式来创建一致的布局和设计,适用于整个网站。通过定义一个主页面,开发者可以定义通用的头部、导航栏、页脚等元素,而内容页面(Content ...

    Asp.net通用自定义数据库访问类的设计和实现

    总的来说,Asp.NET通用自定义数据库访问类的设计和实现涉及到了Web开发的多个核心技术和原则。通过合理的设计和实现,我们可以构建出高效、稳定且易于维护的管理信息系统,满足研究生信息管理的需求。在实际开发过程...

    基于C#+ASP.NET实现的通用权限管理系统1.0.4源代码

    在C#和ASP.NET中,这些功能通常通过控制器(Controller)、视图(View)和模型(Model)三者协作来实现,形成MVC模式的核心。 在数据库层面,系统可能利用了Entity Framework,这是.NET框架的一个ORM(对象关系映射...

    ASP.NET 深入解析(PDG)

    在ASP.NET开发中,常见的设计模式如工厂模式、单例模式、观察者模式等都有广泛应用。设计模式提供了通用的解决方案,有助于提高代码质量和可重用性。 七、架构设计 ASP.NET适合构建多层架构的应用程序,通常包括...

    ASP.net通用类库

    ASP.NET通用类库是.NET Framework或.NET Core框架的一部分,它为开发者提供了丰富的API和...以上只是ASP.NET通用类库中的一小部分关键知识点,实际开发中还需要深入理解和实践这些概念,并不断学习新的技术和最佳实践。

    ASP.NET封装功能整理

    在这个“ASP.NET封装功能整理”中,我们将深入探讨一些关键的ASP.NET特性、组件以及如何进行封装,以便在实际项目中重用和优化代码。 首先,ASP.NET的核心概念是页面生命周期管理。每个ASP.NET Web页都经历一系列的...

    ASP.NET网站基础

    ASP.NET支持Master Pages概念,允许创建一个主模板页面,其中包含通用的头部、底部和导航元素,而子页面可以继承这些通用布局。这样可以提高代码复用性和网站的统一性。每个子页面可以添加自己的独特内容,同时保持...

    ASP.NET Core MVC从入门到精通系列文章PDF版

    2. **ASP.NET Core MVC**:是ASP.NET Core中的MVC实现,它提供了更轻量级、高性能的Web开发框架,支持.NET Core和.NET Framework,具备跨平台能力。 3. **项目创建和启动**:通过Visual Studio或命令行工具如dotnet...

    asp.net复习题

    以上知识点涵盖了ASP.NET的核心概念,包括.NET框架的基础结构、ASP.NET页面生命周期、数据类型与结构、Web开发中的关键元素以及页面状态管理。理解并掌握这些知识点对于学习和开发ASP.NET应用程序至关重要。

    Asp.Net增 删 改 查 通用方法

    在ASP.NET中,通常会使用ADO.NET或者Entity Framework这样的ORM(对象关系映射)工具来实现。以Entity Framework为例,我们可以创建一个DbContext子类,包含对我们数据库模型的 DbSet 属性。 ```csharp public ...

    asp.net 模板(包含master页)

    Master页面是ASP.NET中的一个特殊类型的页面,它的主要作用是定义网站的通用头部、底部、侧边栏等共享元素。开发者可以创建一个Master页面,然后在其他内容页面中引用它,这样内容页面就会继承Master页面的布局,而...

    asp.net 继承窗体的设计

    在ASP.NET中,继承窗体(Inherited Forms)是一种强大的设计模式,它允许开发者复用和扩展已有的窗体代码,提高开发效率和代码的可维护性。C#作为ASP.NET的主要编程语言,提供了丰富的特性支持类的继承。本资源...

    asp.net通用权限管理系统

    asp.net通用权限系统 版本2012-9-22日 开发工具: sql2005+vs2008 数据库文件和建模文件都在里面(ProjectDB,MyProject) 建模文件是用的PowerDesigner 12.5 1.可插拔的权限系统,权限控制粒度可精确页面和按钮,任何...

    asp.net通用权限系统修改版

    asp.net通用权限系统修改版 开发工具: sql2005+vs2008 数据库文件和建模文件都在里面(ProjectDB,MyProject) 建模文件是用的PowerDesigner 12.5 功能特点: 1.可插拔的权限系统,权限控制粒度可精确页面和按钮,任何...

    北大青鸟—使用ASP.NET构建动态网站课件全套

    在ASP.NET中,通过C#或VB.NET等编程语言,结合ASP.NET控件和服务器端脚本,可以轻松实现动态内容的生成。这包括用户登录、数据库交互、表单处理等功能,使网站具有更高的互动性和功能性。 【ASP.NET的核心组件】 1...

    MovieFilm asp.net视频点播系统

    在MovieFilm系统中,母版页可能包含了登录注册、搜索框和导航菜单等通用组件,各个视频详情页和演员资料页可以直接继承这个母版页,保持整体设计的一致性。 安全方面,ASP.NET 2.0提供了身份验证和授权机制,例如...

    ASP.NET的网页代码模型及生命周期

    在ASP.NET中,能够使用面向对象的思想和软件开发中的一些思想,例如封装、派生、继承以及高级的设计模式等。本章首先介绍ASP.NET中最重要的概念---网页代码模型。 4.1 ASP.NET的网页代码模型 在ASP.NET应用程序开发...

    ASP.NET MVC5 入门PPT

    布局(Layout)在ASP.NET MVC中用于定义应用程序的通用页面结构。这章将教授如何使用布局来减少代码重复,实现多个页面共享相同的头部、导航和底部信息。 **第9章 ADO.NET EF和Linq(4学时).pptx** ADO.NET Entity ...

    基于ASP.NET图书管理系统源码,无密码

    `MasterPage`是ASP.NET中的主页面,用于定义网站的统一布局,子页面可以继承它的布局,方便维护和更新。 六、图片资源与静态文件管理 `images`目录存储了系统中使用的图片资源,如图标、背景图等。在Web应用中,...

Global site tag (gtag.js) - Google Analytics