与工厂方法是同一类模式,依然是绕开new的
面临的问题:一系列相互依赖的对象创建
面临多种不同数据库的变化!3个指令,被声明为3个类!
3个类对应3个基类,3个基类对应3个工厂基类
先创建虚基类!
1.数据库访问有关的基类:3个
2.支持SQL server的类:派生
3.支持Oracle的类:派生
先把左边换掉
那么new该怎么办?
回忆之前的工厂模式
生成1.虚工厂基类 2.工厂基类
3个工厂,创建3个对象,需要在构造器中初始化一下
抽象工厂-(家族工厂)
存在一个问题:
3个对象具有关联性,需要是同组的,否则将会有各种BUG
将三个工厂,放到一个工厂呢?
高内聚,松耦合,保证了关联性
一系列相互依赖对象的创建工作
面临更多系列对象的创建工作
红一:IDBFactory
红二:IDBConeection
红三:IDBCommand
蓝1:SQLDBFactory
1:A:connection
1:B:command
蓝2:ORACLEDBFactory
2:A:connection
2:B:command
蓝绿位两种变化:SQL/ORACLE
1.“多系列对象构建”
2.系列对象之间相互依赖及作用
3.应对新系列的变动,难以应对新对象