假如我们现在有一个功能,使用Sqlserver保存User的数据,单一的方式比较简单,可以封装并在方法里实现与Sqlserver的连接,但是我们现在又增加了Access
同样保存User的数据,通过封装类的方法不能满足需要了,这个时候可以通过工厂方法来实现,如下图所示,创建IUser接口Sqlserver和Access分别去实现,并创建工厂接口类,Sqlserver和Access实现工厂类
每个实现类的职责都是单一,实现单一的对象。这种方式就是工厂方法。

这个时候,我们不仅要要保存User的数据,还要保存Department的数据,此时,这个时候需要利用到抽象工厂方法,抽象工厂方法在工厂类里会实现不同的对象的,这是工厂方法不同的地方,工厂方法实现的是单一的对象。
在抽象工厂方法里不仅要实现的createUser也要实现createDepartment,这就是抽象工厂方法

网友评论