三层架构基础上添加工厂类和装饰者模式,使代码更简洁更健壮
2012-03-03 22:09
357 查看
普通的三层架构我们是相当熟悉的(表现层--业务逻辑处理层---数据访问层)。最近由于一个小项目需要大量的使用.net的数据缓存技术(HttpRuntime.Cache)。然而项目中个表的更新,插入,删除等操作比较频繁。三天更新一次。所以我采用一个比较简单的方法让表的更新,插入,删除的时候自动更新缓存。
首先定义了一个数据操作接口
复制代码
让所有的业务逻辑层都实现改接口。
复制代码
这是个一个装饰者类。我们通过这样的方式来调用
public static Maticsoft.BLL.News mewsBll = new Maticsoft.BLL.News();
DataChanges DC = new DataChanges(mewsBll);
这样就简便了代码,可以这个类中加一些公共的逻辑处理。节省了去每个每个逻辑类中添加方法。此处我是加了 清除缓存的公共逻辑处理
复制代码
小小感悟。一般的三层工厂也是跟这个差不多。利用接口变量指向实现类对象(多态)。
鸟的神圣使命之关于网站页面速度优化的小小感悟(1)
摘要: 通过对页面元素(变量,标签,字段,对象等)的二次封装,减少数据库的访问次数和提高代码的执行效率。 我们都知道 webform( 请求-处理 -回应) 是离线失忆的工作模式。一次请求往往需要对请求中的页面的多个标签进行绑定或者输出。经常造成需要多次访问数据库进行数据操作。因此我们可以自定义封装 一个页面类模型。阅读全文
posted @ 2012-02-25 12:04 青牛客 阅读(1105) | 评论 (0) 编辑
jquery-easyui datagrid 一个还行的表格插件 关于json部分的处理
摘要: 最近有个小case 使用到了datagrid,在博客上分享下使用心得,欢迎大家指正,datagrid 使用上的都比较简单,搭配一般处理程序使用起来也比较爽,唯一要稍微动点心思的就是关于json格式的处理。还有datagrid 在ie中比较渲染慢的问题,这个问题断断续续用了几个办法都没解决,不给力,打开速度要好几秒。阅读全文
posted @ 2012-02-18 10:31 青牛客 阅读(1082) | 评论 (5) 编辑
关于无刷新上传插件uploadify 显示到页面及自定义上传的文件名称
摘要: uploadify上传 uploadify上传文件并自定义文件名 今天正好遇到这个问题 uploadify并没有函数返回自己修改后的文件名 所以只能另辟蹊径了。通过前端来提交个 时间串来重新定义文件名。阅读全文
posted @ 2012-02-17 16:03 青牛客 阅读(404) | 评论 (5) 编辑
首先定义了一个数据操作接口
public interface DataChangesInterface { void Update(object model); int Add(object model); void Delete(int ID); }
复制代码
让所有的业务逻辑层都实现改接口。
public class News: DataChangesInterface { private readonly Maticsoft.DAL.News dal=new Maticsoft.DAL.News(); void DataChangesInterface.Update(object model) { Update((Model.News)model); } int DataChangesInterface.Add(object model) { return Add((Model.News)model); } void DataChangesInterface.Delete(int News_ID) { Delete(News_ID); } #endregion }
复制代码
这是个一个装饰者类。我们通过这样的方式来调用
public static Maticsoft.BLL.News mewsBll = new Maticsoft.BLL.News();
DataChanges DC = new DataChanges(mewsBll);
这样就简便了代码,可以这个类中加一些公共的逻辑处理。节省了去每个每个逻辑类中添加方法。此处我是加了 清除缓存的公共逻辑处理
public DataChanges( DataChangesInterface DataChanges) { DataBLL = DataChanges; } private static DataChangesInterface DataBLL; public void Update(object model) { DataBLL.Update(model); methodBLL.RemoveAllCache(); } public int Add(object model) { int i= DataBLL.Add(model); methodBLL.RemoveAllCache(); return i; } public void Delete(int ID) { DataBLL.Delete(ID); methodBLL.RemoveAllCache(); }
复制代码
小小感悟。一般的三层工厂也是跟这个差不多。利用接口变量指向实现类对象(多态)。
鸟的神圣使命之关于网站页面速度优化的小小感悟(1)
摘要: 通过对页面元素(变量,标签,字段,对象等)的二次封装,减少数据库的访问次数和提高代码的执行效率。 我们都知道 webform( 请求-处理 -回应) 是离线失忆的工作模式。一次请求往往需要对请求中的页面的多个标签进行绑定或者输出。经常造成需要多次访问数据库进行数据操作。因此我们可以自定义封装 一个页面类模型。阅读全文
posted @ 2012-02-25 12:04 青牛客 阅读(1105) | 评论 (0) 编辑
jquery-easyui datagrid 一个还行的表格插件 关于json部分的处理
摘要: 最近有个小case 使用到了datagrid,在博客上分享下使用心得,欢迎大家指正,datagrid 使用上的都比较简单,搭配一般处理程序使用起来也比较爽,唯一要稍微动点心思的就是关于json格式的处理。还有datagrid 在ie中比较渲染慢的问题,这个问题断断续续用了几个办法都没解决,不给力,打开速度要好几秒。阅读全文
posted @ 2012-02-18 10:31 青牛客 阅读(1082) | 评论 (5) 编辑
关于无刷新上传插件uploadify 显示到页面及自定义上传的文件名称
摘要: uploadify上传 uploadify上传文件并自定义文件名 今天正好遇到这个问题 uploadify并没有函数返回自己修改后的文件名 所以只能另辟蹊径了。通过前端来提交个 时间串来重新定义文件名。阅读全文
posted @ 2012-02-17 16:03 青牛客 阅读(404) | 评论 (5) 编辑
相关文章推荐
- 最基础的代码设计模式-健壮可靠宽容
- asp也玩三层架构(有源代码)
- 代码架构?我对设计模式的理解
- 三层架构dal 层基本代码 非查询/查询
- 【三层架构】——基础知识
- 黑马程序员 _ java基础 _ 之装饰者设计模式
- 云计算架构基础之多租户数据架构 (二) 三种模式实现相关的一些模式
- C# 框架是什么?MVC是什么 ?工厂模式是什么?设计模式是什么?三层架构是什
- C#进阶ADO.NET基础四 复习、DBNull、三层架构只数据访问层
- 软件架构之美在于简单、好用、稳定、功能定位明确、代码简洁、通俗易懂
- 黑马程序员 C#学习笔记⑥ 三层架构基础实现员工信息管理
- Java 基础一些代码练习笔记(设计模式-单列模式)
- 三层架构之基础知识
- asp.net mvc应用架构的思考--Unity的应用及三层代码
- 也谈TDD,以及三层架构、设计模式、ORM……:没有免费的午餐
- 三层架构之数据库访问层完全篇(C#代码)
- android 设计模式 ——装饰者模式(给你的代码穿上漂亮的衣服 )
- 黑马程序员--基础加强--第三篇--单例设计模式,装饰者模式认识,专家模式,享元模式,模版方法设计模式
- 软件架构之美在于简单、好用、稳定、功能定位明确、代码简洁、通俗易懂
- 第十一回 基础才是重中之重~Conditional特性使代码根据条件在debug或者release模式中执行