MVC接口的使用之自动创建实例化(一)学习
来源:互联网 发布:网络四大名著 编辑:程序博客网 时间:2024/05/14 19:49
EFDAL层
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Dulei.IDAL;using Dulei.Model;namespace Dulei.DAL{ public class UserInfoEFDal:IUserInfoDal 继承IUserInfoDal接口 { public UserInfo ADD(UserInfo userInfo) 使用IUserInfoDal实现接口 { DataModelContainer db = new DataModelContainer(); db.UserInfo.Add(userInfo); db.SaveChanges(); return userInfo; } }}
AdoNetDal层
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Dulei.IDAL;namespace Dulei.AdoNetDAL{ public class UserInfoAdoNetDal:IUserInfoDal 继承IUserInfoDal接口 { public Model.UserInfo ADD(Model.UserInfo userInfo) 使用IUserInfoDal实现接口 { throw new NotImplementedException(); } }}
1、建立接口层IDAL
2、IDal层创建了UserInfo实例
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Dulei.Model;namespace Dulei.IDAL{ public interface IUserInfoDal { UserInfo ADD(UserInfo userInfo); }}
BLL层调用接口实例
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Dulei.AdoNetDAL;using Dulei.DAL;using Dulei.IDAL;using Dulei.Model;namespace Dulei.BLL{ public class UserInfoService { IDAL.IUserInfoDal userInfoDal =new UserInfoEFDal(); IDAL.IUserInfoDal实例。只需要改new UserInfoEFDal();new IUserInfoDal();就可以更换数据DAL层 public UserInfo AddUserInfo(UserInfo userInfo) { return userInfoDal.ADD(userInfo); } }}
总结:更换数据层时就可以不用在去更改业务层代码了。只需要更改new的实例。
如果要改数据库还需要改new实例
二、new实例
上面已经对实例进行了接口的改良。下面对NEW 实例就行改良。
DalFactory类库增加类名为DALFactory
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Dulei.DAL;namespace Dulei.DalFactory{ public class DALFactory { public static IDAL.IUserInfoDal GetUserInfoDal() { return new UserInfoEFDal(); } }
更改BLL层NEW的实例
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Dulei.AdoNetDAL;using Dulei.DAL;using Dulei.IDAL;using Dulei.Model;namespace Dulei.BLL{ public class UserInfoService { private IDAL.IUserInfoDal userInfoDal = DalFactory.GetUserInfoDal(); 通过DalFactory.GetUserInfoDal();拿到NEW的新实例 public UserInfo AddUserInfo(UserInfo userInfo) { return userInfoDal.ADD(userInfo); 以后更换DAL时只需要改return后面的代码,更换ado的数据库UserInfoAdoNetDal } }}
虽然看上去简单,但是这里体现了面向对向的恩想。
新的问题要更数据库还要更改UserInfoDAL
传程序集进来。
namespace CZBK.OADemo.DalFactory{ public class DALSimpleFactory { public static IDAL.IUserInfoDal GetUserInfoDal() { //如果直接new 的话那么必须 改代码的才能切换不同的数据库访问层。 //非常希望能做到:只改配置就能够创建出实例出来。也就是改变数据库访问层的实现。 //return GetInstences("CZBK.OADemo.DAL", "CZBK.OADemo.DAL." + "UserInfoDal") as IUserInfoDal; return new UserInfoAdoNetDal(); } public static Object GetInstences(string assemblyName, string typeName) { return Assembly.Load(assemblyName).CreateInstance(typeName); //return null; } }}同过程序集来判断程序集的类型名字。
在去webconfig下
<appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> <add key="AssemblyName" value="Dulei.Dal" /> <add key="NameSpace" value="Dulei.Dal" /> </appSettings>
增加了
<add key="AssemblyName" value="Dulei.Dal" />
<add key="NameSpace" value="Dulei.Dal" />
通过更改appsettings来修改使用的数据库
0 0
- MVC接口的使用之自动创建实例化(一)学习
- Asp.net MVC 3实例学习之ExtShop(一)————创建应用并设置开发环境
- spring mvc学习(一)入门实例
- Asp.net MVC 3实例学习之ExtShop(二)——创建母版页
- Swift学习 接口的创建与使用
- C#学习之路-MVC(一)
- MVC学习之路笔记(一)
- Docker之Cgroup与接口的使用(一)
- Docker之Cgroup与接口的使用(一)
- java基础学习总结——线程之使用Runnable接口创建线程的方法
- 学习接口应用之C#接口实例
- MVC学习实例记录(使用MVC4做的电影管理程序)
- MVC ----- 创建一个实例化控制器的方法
- MVC --- 创建一个实例化类的函数
- MVC实现通用的增删改查。使用接口(三)学习
- GUI的基本使用方式之代码实例(一)
- 安卓学习之--使用Java代码创建Layout--实例
- SAP接口编程之综合实例(一):资产负债表方案
- 多态的体现1
- 多态举例
- Arduino驱动无法安装 找不到指定文件问题的解决方法
- live555 分析- openRtsp
- 栈的增长方向
- MVC接口的使用之自动创建实例化(一)学习
- 音频播放处理(openal、dsound、waveout)
- 哈希表简介
- 机器学习(Machine Learning)
- 嵌入式Linux 从业两年了总结(2013)
- jsf1.2 和 jsf2.0 的区别
- 关于nios ii 中 bash.exe: warning:could not find /tmp. please create! 的错误解决
- Hibernate 二级缓存
- Android创建私钥并为APK文件签名