工厂模式:3W
1W:What?
--提供创建对象的接口
2W:Why?
--相当于new创建实例对象,使用该模式,可以让系统具有更好的扩展性/易维护性和复用性,充分展示了面向对象的特点
活字印刷技术就是一个面向对象的应用。 (以下内容属于摘抄)
引:“活字印刷的特点是:第一,要改,只需要更改要改之字,此为可维护;第二,这些字并非用完这次就无用,完全可 以在后来的印刷中重复使用,此乃可复用;第三,若要加字,只需另刻字加入即可,这是可扩展;第四,字的排列可能是竖排可能是横排,此时只需将活字移动就可满足排列需求,此是灵活性好。而在活字印刷术出现之前,上面的四种特性都无法满足。”
3W:How?
--以下介绍一个通过Excel表格向数据库导入数据的功能实现,在下面代码的实现过程就是工厂模式的应用。
-------------------------介绍完毕,进入代码世界-------------------------
第一步:创建前台/后台页面
第二步:创建一个程序集,命名为SXInnerWebPersistent。在该程序集下建立文件夹Model,在该文件夹下创建类文件InputClass.cs
注意:在使用Assembly.Load(程序集名称).CreateInstance(命名空间+类名)有可能会出现错误或是null值
出现这类问题的原因与解决方法是:
1.请检查数据层是否实现了接口
dll下面的具体类是否实现了接口的定义
2.请检查程序集名称和命名空间不一致
Assembly.Load(path)这里的path必须是一个程序集的名称,而不是类命名空间的名称。
CreateInstance(CacheKey)这里的CacheKey其实是需要反射的类型全名(程序集名称+类名)
3.请检查BLL层是否添加了该项目引用