简单工厂
专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口。简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一个条件(参数)来返回不同的类的实例。
抽象工厂
抽象工厂模式(英语:Abstract Factory)是一种常见的设计模式。此模式为一个产品家族提供了统一的创建接口。当需要这个产品家族的某一系列的时候,可以从抽象工厂中选出相对系的系列来创建一个具体的工厂类别。
抽象工厂不爽!!!IoC DI出场
IoC:Inversion of Control 控制翻转:就是创建对象的权利由开发人员自己控制New,转到了由容器来控制,即不需要自己创建对象。
DI:Dependency Injection 依赖注入:就是在通过容器来创建对象的时候,在对象的初始化是可以给一些属性、构造方法的参数等注入默认值(可以是复杂的类型)
在Asp.net MVC中应该怎样使用Spring.Net
1:先导入dll文件。
2:将案例中的Config文件夹拷贝到项目中。
3:修改Config文件夹中的相关的配置信息。
controllers.xml的代码,将Config/controllers.xml文件中的配置信息分离(可以将控制器的配置与业务类的配置分离。controllers.xml、service.xml)注意web.config文件中也要修改一下。
<?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"> <!--UserInfoControlle控制器,type分别代表控制器的命名空间、程序集;singleton代表是否为单例模式--> <object type="CZBK.ItcastOA.WebApp.Controllers.UserInfoController, CZBK.ItcastOA.WebApp" singleton="false" > <!--属性:名称,复杂属性用ref,简单的值用value;此UserInfoService属性关联service.xml中的UserInfoService--> <property name="UserInfoService" ref="UserInfoService" /> </object> </objects>
service.xml中的代码
<?xml version="1.0" encoding="utf-8" ?> <objects> <!--UserInfoService类,type分别代表命名空间、程序集;singleton代表是否为单例模式;name要和controllers.xml中的ref一致--> <object type="CZBK.ItcastOA.BLL.UserInfoService, CZBK.ItcastOA.BLL" singleton="false" name="UserInfoService" > </object> </objects>
把UserInfoController控制器下的对象改成属性 IUserInfoService UserInfoService=new UserInfoService();修改成 IUserInfoService UserInfoService {get;set}
4:修改Web.config文件中的配置。
5:修改Global文件.继承SpringMvcApplication
注意:把新添加的xml配置设置如下,否则在bin下不会生成此xml,导致web.config找不到配置的文件路径
此spring.net用的版本为2.0.0.40000依赖于Microsoft.AspNet.WebApi.Core.4.0.20710.0 、Microsoft.AspNet.WebApi.WebHost.4.0.20710.0