三层架构基础上添加工厂类和装饰者模式,使代码更简洁更健壮

 普通的三层架构我们是相当熟悉的(表现层--业务逻辑处理层---数据访问层)。最近由于一个小项目需要大量的使用.net的数据缓存技术(HttpRuntime.Cache)。然而项目中个表的更新,插入,删除等操作比较频繁。三天更新一次。所以我采用一个比较简单的方法让表的更新,插入,删除的时候自动更新缓存。

      首先定义了一个数据操作接口

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) 编辑

你可能感兴趣的:(装饰者模式)