【三层架构】之三层扩展七层

       哎,真心不想在这里写这篇博客,本来三层到七层顶多了也就用两天时间去分析,结果我用了将近四天,最后我都快崩溃了,还有好多问题都是同学帮我找出来的,真是很是汗颜呐!

      下面是我三层架构扩展成七层架构的UML包图:



        之前看别人都是用的VB.NET版,我就觉得刚学习了C#语言,就先用C#版吧,结果倒好,两种语言编写的差距那叫个明显,出现了好多错误。在这里我就整理一个影响较大的问题吧。

关于抽象工厂方法,使用反射和配置未见引用为例:

反射代码:

        private static readonly string AssemblyName = "程序集名称";
        private static readonly string db = "Sqlserver";
        public static IUser CreateUser()
        {
            string className = AssemblyName + "." + db + "User";
            return (IUser)Assembly.Load(AssemblyName).CreateInstance("className");
        }

其中程序集名称可以通过程序集属性里查看,对于下面存在返回结果的一行中要根据所需要求来进行:

<pre name="code" class="html">return (接口名)Assembly.Load("当前程序集名称").CreateInstance(“当前命名空间.要实例化的“类名”);


 
这句代码一定要看清在哪里写程序集名称,哪里写命名空间名称。如果你没有认真听三层视频的话,你可能就不会犯一个错误:将程序集名称和命名空间分开,那样写那个都一样,就像上边的整个代码一样编码就行了。但是,注意,如果你认真听了,那上面说命名空间最好加上个”.“,那么,很不幸,你中招了,虽然方便了你写,但是也同样在一些问题上你就不知道该写哪一个好,可能就会输入同一个,然后就错了。所以还是要看清程序集名称和命名空间为好。 

在配置文件代码中,我开始没搞懂”DB“是干啥的,我只知道DB可以传值给db,然后我也就跟着写了,结果错了,原因在于课本上的实例化的类名区分这Sqlserver和Access,而我的没有区分,然后系统运行的时候找不到相对应的SqlserverUser,return返回为null,最后系统当然就不干了啊。

所以如果你没有区分那个数据库,则最好不要去使用配置文件,如果同课本一样区分了不同的数据库,那就才可以继续。






  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 37
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值