设计模式系列(二)-抽象工厂

【注】本文还有待修改,现在只提供源码 和 简单分析,后续会做详细说明

1.为什么要使用抽象工厂,一个案例告诉你,对照下面这张图,来看案例

image

问题:

1.UI展示有时候,需要调用业务A,有时候要调用业务B
2.而业务A,可能使用了MSSQL数据库,也有可能使用了Oracle数据库
3.不管MSSQL数据层,还是Oracle数据层,他们用到的实体都是一样,且数据库需要的方法也类似

分析并解决

1.首先,我们肯定需要一个数据层,那么这个数据层由谁来创建,由谁来调用
【数据层由数据工厂创建 并 赋值给数据层接口,然后由具体的业务层调用】
2.而不同数据库,会对应不同的工厂,那我们要使用哪个工厂
【通过数据工厂父类,再根据配置文件,可以得到我们需要的数据层对象】
3.然后,我们就需要一个业务层,那么这个业务层由谁来创建,由谁来调用
【业务层由业务工厂创建 并 赋值 给业务层接口,然后由表示层调用】
4.而不同业务,会对应不同的工厂,那我们要使用哪个工厂
【通过业务工厂父类,再根据配置文件,可以得到我们需要的业务层对象】
5.有了业务层,那么怎么调用呢
【在表示层,通过业务工厂父类,创建业务工厂对象】
【再由业务工厂对象,创建业务层对象】
【最后由业务层对象,调用我们需要的方法 】
6.得出结论
【各层都只调用接口,具体实现由工厂来实现】

2.按照以上 分析,我们就开始写代码,大家可以按照上面分析,以及对照代码,理解一下,不懂的话,欢迎交流

3.源码地址

源码下载
posted @ 2015-05-24 14:17  Kimisme  阅读(411)  评论(0编辑  收藏  举报