信息发布系统 Jquery+MVC架构开发(6)BLL层提供WCF 服务 .
BLL层我们用wcf 来提供服务,这一层我们只对外只发布一个服务,为了使我们的代码可维护更好,我们引入抽象工厂模式。
这样的话我们首先也创建三个接口:
1) IInfo
InfoResult Add(Info info);
InfoResult Update(Info info);
InfoResult Delete(int infoId);
InfoList GetInfoList(SearchInfo searchInfo);
InfoList GetInfoById(int infoId);
2) IInfoType
跟上面相同,不再赘述。
3) IUserInfo
跟上面相同,不再赘述。
然后实现这三个接口,我们也用infoBll为例如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfoPub.DAL;
using InfoPub.Modal;
namespace InfoPub.BLLService
{
public class InfoBLL:IInfo
{
private InfoDal infoDal=new InfoDal();
public InfoResult Add(Info model)
{
return infoDal.Add(model);
}
public InfoResult Update(Info model)
{
return infoDal.Update(model);
}
public InfoResult Delete(int infoId)
{
return infoDal.Delete(infoId);
}
public InfoList GetInfoList(SearchInfo searchInfo)
{
return infoDal.GetInfoList(searchInfo);
}
public InfoList GetInfoById(int infoId)
{
return infoDal.GetInfoById(infoId);
}
}
}
然后我们创建一个工厂接口:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace InfoPub.BLLService.Interface
{
public interface INBllFactory
{
IInfo CreateInfo();
IInfoType CreateInfoType();
IUserInfo CreateUserInfo();
}
}
然后实现工厂类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfoPub.BLLService.Interface;
namespace InfoPub.BLLService
{
public class BllFactory : INBllFactory
{
public IInfo CreateInfo()
{
return new InfoBLL();
}
public IInfoType CreateInfoType()
{
return new InfoTypeBLL();
}
public IUserInfo CreateUserInfo()
{
return new UserInfoBLL();
}
}
}
为了访问工厂类我们定义一个工厂提供类:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace InfoPub.BLLService
{
public class Common
{
public static BllFactory bllFactory=new BllFactory();
}
}
这样我们就可以访问我们的工厂类了,为了对wcf 提供工厂类的方法,我们加入一个CommonData类,它就类似我们的门面:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace InfoPub.BLLService
{
public class CommonData
{
#region 全局变量
public static IInfo info = Common.bllFactory.CreateInfo();
public static IInfoType infoType = Common.bllFactory.CreateInfoType();
public static IUserInfo userInfo = Common.bllFactory.CreateUserInfo();
#endregion
}
}
然后定义我们的wcf 契约:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using InfoPub.Modal;
namespace InfoPub.BLLService
{
[ServiceContract]
public interface IInfoPubService
{
[OperationContract]
InfoResult AddInfo(Info info);
[OperationContract]
InfoResult UpdateInfo(Info info);
[OperationContract]
InfoResult DeleteInfo(int infoId);
[OperationContract]
InfoList GetInfoList(SearchInfo searchInfo);
[OperationContract]
InfoList GetInfoById(int infoId);
[OperationContract]
InfoResult AddInfoType(InfoType infoType);
[OperationContract]
InfoResult UpdateInfoType(InfoType infoType);
[OperationContract]
InfoResult DeleteInfoType(int infoTypeId);
[OperationContract]
InfoTypeList GetInfoTypeList(SearchInfoType searchInfoType);
[OperationContract]
InfoTypeList GetInfoTypeById(int infoId);
[OperationContract]
InfoResult AddUserInfo(UserInfo userInfo);
[OperationContract]
InfoResult UpdateUserInfo(UserInfo userInfo);
[OperationContract]
InfoResult DeleteUserInfo(int userinfoId);
[OperationContract]
InfoList GetUserInfoList(SearchUserInfo searchUserInfo);
[OperationContract]
InfoList GetUserInfoById(int userInfoId);
}
}
它的实现如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using InfoPub.Modal;
namespace InfoPub.BLLService
{
public class InfoPubService : IInfoPubService
{
public InfoResult AddInfo(Info info)
{
return CommonData.info.Add(info);
}
public InfoResult UpdateInfo(Info info)
{
return CommonData.info.Update(info);
}
public InfoResult DeleteInfo(int infoId)
{
return CommonData.info.Delete(infoId);
}
public InfoList GetInfoList(SearchInfo searchInfo)
{
return CommonData.info.GetInfoList(searchInfo);
}
public InfoList GetInfoById(int infoId)
{
return CommonData.info.GetInfoById(infoId);
}
public InfoResult AddInfoType(InfoType infoType)
{
return CommonData.infoType.Add(infoType);
}
public InfoResult UpdateInfoType(InfoType infoType)
{
return CommonData.infoType.Update(infoType);
}
public InfoResult DeleteInfoType(int infoTypeId)
{
return CommonData.infoType.Delete(infoTypeId);
}
public InfoTypeList GetInfoTypeList(SearchInfoType searchInfoType)
{
return CommonData.infoType.GetInfoTypeList(searchInfoType);
}
public InfoTypeList GetInfoTypeById(int infoId)
{
return CommonData.infoType.GetInfoTypeById(infoId);
}
public InfoResult AddUserInfo(UserInfo userInfo)
{
return CommonData.userInfo.Add(userInfo);
}
public InfoResult UpdateUserInfo(UserInfo userInfo)
{
return CommonData.userInfo.Update(userInfo);
}
public InfoResult DeleteUserInfo(int userinfoId)
{
return CommonData.userInfo.Delete(userinfoId);
}
public InfoList GetUserInfoList(SearchUserInfo searchUserInfo)
{
return CommonData.userInfo.GetUserInfoList(searchUserInfo);
}
public InfoList GetUserInfoById(int userInfoId)
{
return CommonData.userInfo.GetUserInfoById(userInfoId);
}
}
}
下面是我们的类图关系:
需要说明的是我这个是用ea逆向生成的类图,然后手工修改了一下。
转载于:https://www.cnblogs.com/hliq/archive/2011/07/24/2115237.html
信息发布系统 Jquery+MVC架构开发(6)BLL层提供WCF 服务 .相关推荐
- [置顶]信息发布系统 Jquery+MVC架构开发(7) Controller层
Controller 这一层首先要添加对WCF 的引用: 如下,输入我们自己的wcf地址 http://localhost:8732/Design_Time_Addresses/InfoPub.BLL ...
- [置顶]信息发布系统 Jquery+MVC架构开发(4)Model 层
下面开始在我们的解决方案里面增加实体. 这一层我个人感觉是跟数据库的映射层次,有了这一层,各层访问数据库会方便很多,不然的话得用DataSet或DataReader的直接访问了.理解为持久化对象就ok ...
- asp毕业设计—— 基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码)——软件信息发布系统
基于asp+access的软件信息发布系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+access的软件信息发布系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦.需 ...
- 完成一个MVC+Nhibernate+Jquery-EasyUI信息发布系统
一.最近学习了Jquery-EasyUI框架,结合之前用过的MVC3+Nhibernate做一个信息发布系统,对工作一年半的自己做一个总结吧!(也正好 供初学者学习!) 二.先上截图(系统简介),让大 ...
- java计算机毕业设计即时高校信息发布系统源码+mysql数据库+系统+lw文档+部署
java计算机毕业设计即时高校信息发布系统源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计即时高校信息发布系统源码+mysql数据库+系统+lw文档+部署 本源码技术栈: 项目架构 ...
- java ssm旅游景点景区门票预订及信息发布系统
网络已经逐渐深入到人们生活的每一个角落,人们可以通过网络进行信息分享.在线交流.人们的生活也可以因为网络而丰富多彩,当互联网正式走进人们的生活的时候,它对传统的生活方式是一种颠覆,比如突破了地理上的限 ...
- 商场、超市信息发布系统解决方案
商场.超市信息发布解决方案 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...
- 德睿多媒体信息发布系统
今天,信息的有效传递比任何时候都重要.企业需要向消费者宣传产品:政府需要向市民传达政策法规:车站需要向旅客通知交通情况:学校需要向学生发布通知等等.户外广告.公告牌.告示栏,甚至黑板报等,都是常见的公 ...
- WML信息查询与后端信息发布系统实现-java -(报告+源码)
1.1项目研究背景 在信息化时代的今天,如何方便快捷地进行信息的交互已经成为人们的热门话题.随着无线通讯技术以及手机终端的发展,随时随地进行信息的交互已经成为现实,WAP技术的出现犹如无线通讯的世界的 ...
最新文章
- mysql pdo 查询一条数据_pdo mysql怎么输出第1条 第4条 第7条数据
- linux uname 命令
- java default修饰符_Java修饰符看这一篇就够了
- electron调试html,electron桌面应用程序开发入门
- [BUUCTF-pwn]——ciscn_2019_s_3
- 【CV论文阅读】:Rich feature hierarchies for accurate object detection and semantic segmentation...
- I - The Mad Mathematician FZU - 2042(未解决)
- k8s强制删除pod
- suse 10 下mysql安装
- 白板机器学习笔记 P22-P27 PCA降维
- java frame linux_JAVA环境(下) - Android框架简介_Linux编程_Linux公社-Linux系统门户网站...
- Atitit 知识的来源于生产方式大总结与机器学习分类 目录 1.1. 知识来源四个渠道 dna,经验,文化交流聚会,pc互联网等	1 1.2. 未来世界上大多数知识都将被机器提取,且将留存在机器
- PE格式详细讲解5 - 系统篇05|解密系列
- ES6 推荐网络文档书籍
- 自己动手,更换光猫,这次是吉比特H2-3换为华为MA5671。(中国移动光纤宽带)
- java毕业设计——基于java+Java3D的网络三维技术设计与实现(毕业论文+程序源码)——三维技术
- 爬虫千万条,守法第一条,爬虫不规范,亲人两行泪
- 台式计算机最新配置,例举2019推荐组装台式电脑最新配置清单
- PJzhang:微软出口管制条例
- java设计模式笔记