`
emowuyi
  • 浏览: 1470479 次
文章分类
社区版块
存档分类
最新评论

三层架构实战篇——抽象工厂+反射实现验证用户登录!

 
阅读更多

一、“三层”架构就一定要分三层吗?

答案当然是否定的,分层的根本目的就是要达到“高内聚,低耦合”。我们不应该为了分层而分层,那么什么样的分层才是最好的分层呢?我认为,没有最好的分层,只有合理的分层。同时,我们也要根据具体的情况来分析,如果系统很small,不用分层也不是不可。当然,对于一些逻辑复杂的大型系统,分层便显得尤重要了,可以达到所说的,利用团队开发、可复用性、表达的业务逻辑清楚、利于维护等等。

二、下面这个Demo展示实现登录系统的功能,其中利用了抽象工厂+反射+配置文件。

下面是架构图,就是三层架构的扩展,在BLL层与DAL层添加了一个工厂层、接口层。


因为在底层运用了抽象工厂,所以可以方便实现不同数据库的访问。假如,现在要用到的数据库变为Access.就可以把DLL层的SQLServerDAL变成AccessDAL即可。


接下来的类图表现的是其中几个类的关系:

在D层,我添加了一个SQLHelp的类,用来处理SQL语句,与建立连接。代码如下:


下面是DataAccess工厂类,通过接口,确定实例化哪个类。其中用到了反射,为了方便日后数据库维护(只需要将SQLServerDAL类换成AccessDAL类,并用相应的语法实现接口即可。代码如下:


下面是IUser接口类:


下面是SQLServerDAL下的Users类(逻辑实体)


下面是BLL层的验证类:


觉得不妥的地方就是没有例外处理……
欢迎大家交流讨论!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics