为什么?
我们都知道抽象工厂的不足之处就是需要使用switch语句来判断所使用的数据库,为了简单,我们便引入了反射+配置文件。
引入反射不仅解决了switch的判断问题,而且在运行的过程中用B层去调用抽象工厂,通过工厂来调用D层里面的东西,这样就起到了解耦合的作用。
引入配置文件可以使得用户在不修改任何客户端代码的前提下去增加或特替换子类。我们都知道程序写完之后需要打包,但是如果在使用的过程中需要更改数据库怎么办?难道把系统解包更改类然后再打包吗?好像不太切合实际,那么配置文件解决的就是这个问题,它是系统外面的文件,所以更改起来更方便一些。
是什么?
1、百度中的反射:一种计算机处理方式,是程序可以访问、检测和修改它本身状态或行为的一种能力。
自己理解的反射:就是起到链接B层和D层的一个作用,B层调用工厂里的反射机制,工厂来调用D层的数据,解耦合。
2、百度中的配置文件:用户配置文件就是在用户登录电脑时,或在用户使用软件时,软件系统为用户多要加载所需环境的设置和文件的集合。
自己眼中的配置文件:以七层为例,系统运行时要先调用UI层的多dll文件,而配置文件值得就是这个dll文件。
具体使用
1、工厂中的使用:
Imports System.Configuration
Return CType(Assembly.Load("程序集").CreateInstance("命名空间" & "." & "要实例化的类"), 接口)
2、配置文件的使用:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="ConnString" value ="server=localhost;database=Login;User ID=sa;Pwd=123"/>
</appSettings>
</configuration>
3、sqlhelper中的使用:
'configurationManager表示读配置文件
'appsetting获取配置文件的数据
'ConnString为配置文件中的key值
Public Shared strConn As String = ConfigurationManager.AppSettings("ConnString")
小结
第一次使用反射+配置文件,理解的也不是很深刻,一开始一头雾水,也走了很多弯路,不知道如何更改未能加载文件的问题,不知道如何使用配置文件,不知道各个块之间的调用关系,但是经过努力一切都解决了,现在总结的时候再看原来完成反射+配置文件只需要修改三部分,所以遇到问题一定要自己去查去解决,这样才能印象深刻,才会有更多成长!