多层架构在业务逻辑层实现IOC
2011-09-27 16:00
239 查看
在业务逻辑层实现IOC,可以有效的减少代码量,把通用的操作写在通用的类中,然后在UI层对谁操作就建立谁的实例。
具体做法看代码:
Service层核心代码:
接口规范:
实现:
具体业务对象:为了使UI层不直接调用Data层的尴尬
UI层调用Service层代码:
{[/code]
具体做法看代码:
Service层核心代码:
接口规范:
namespaceService
{
///<summary>
///标准逻辑处理接口
///</summary>
///<typeparamname="TEntity"></typeparam>
publicinterfaceIServices<TEntity>whereTEntity:class,Entity.IDataEntity
{
///<summary>
///获得List结果集
///</summary>
///<returns></returns>
List<IDataEntity>GetModelList();
///<summary>
///获得IQueryable结果集
///</summary>
///<returns></returns>
IQueryable<IDataEntity>GetModelIQueryable();
///<summary>
///根据主键得到一个实体
///</summary>
///<paramname="id"></param>
///<returns></returns>
TEntityGetModelById(stringid);
///<summary>
///插入实体
///</summary>
///<paramname="entity"></param>
voidInsertModel(TEntityentity);
///<summary>
///更新实体
///</summary>
///<paramname="entity"></param>
voidUpdateModel(TEntityentity);
///<summary>
///删除单个实体
///</summary>
///<paramname="key"></param>
voidDeleteModel(paramsobject[]key);
}
}
实现:
namespaceService
{
///<summary>
///标准逻辑实现CURD
///</summary>
///<typeparamname="TEntity"></typeparam>
publicclassServices<TEntity>:IServices<TEntity>
whereTEntity:class,Entity.IDataEntity
{
IRepositoryiRepository=null;
///<summary>
///构造函数实现IOC
///</summary>
///<paramname="iRepository"></param>
publicServices(IRepositoryiRepository)
{
this.iRepository=iRepository;
}
publicServices()
{
}
#regionIServices<TEntity>成员
publicList<IDataEntity>GetModelList()
{
returnthis.iRepository.GetModel().ToList();
}
publicIQueryable<IDataEntity>GetModelIQueryable()
{
returnthis.iRepository.GetModel();
}
publicTEntityGetModelById(stringid)
{
thrownewNotImplementedException();
}
publicvoidInsertModel(TEntityentity)
{
this.iRepository.Insert(entity);
}
publicvoidUpdateModel(TEntityentity)
{
this.iRepository.Insert(entity);
}
publicvoidDeleteModel(paramsobject[]key)
{
this.iRepository.Delete(key);
}
#endregion
}
}
具体业务对象:为了使UI层不直接调用Data层的尴尬
namespaceService
{
publicclassUserServices
{
publicData.IRepositoryUserBasesRepository
{
get
{
returnnewData.OA.UserBasesRepository();
}
}
}
}
UI层调用Service层代码:
IServices<Entity.OA.UserBase>iServices=null;[code]publicActionResultIndex()
{[/code]
ViewBag.Message="欢迎使用ASP.NETMVC!";
iServices=newServices<Entity.OA.UserBase>(newUserServices().UserBasesRepository);
ViewData["UserBase"]=iServices.GetModelList().Cast<Entity.OA.UserBase>().ToList();
returnView();
}
原文地址:
/article/4624030.html
相关文章推荐
- 多层架构在业务逻辑层实现IOC
- WinForm下多层架构的实现(转)
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
- 用 WCF 实现多层服务架构平台——客户层演示
- java架构解密——Spring框架的ioc自我实现
- IOC-->IOC+AOP-->热插拔的系统架构实现演化
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现
- IoC~MVC3+EF+Autofac实现松耦合的系统架构
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原
- 基于.NET平台的分层架构实战(六)——依赖注入机制及IoC的设计与实现
- 一个Java实现的多层爬取器架构
- Spring技术内幕——深入解析Spring架构与设计原理(一)IOC实现原理
- Water for asp.net 之七:多层架构的实现
- 使用Spring.Net 1.3.2实现Container(IoC)(三)架构模式IoC
- 基于.NET平台的分层架构实战(十)——业务逻辑层的实现
- 《深入解析Spring架构与设计原理》阅读笔记(一)----IOC容器的设计与实现