Java抽象工厂模式 抽象工厂模式

软件开发中的抽象工厂模式是什么呢?抽象工厂模式(Abstract Factory Pattern)隶属于设计模式中的创建型模式 , 用于产品族的构建 。抽象工厂是所有形态的工厂模式中最为抽象和最具一般性的一种形态 。抽象工厂是指当有多个抽象角色时使用的一种工厂模式 。抽象工厂模式可以向客户端提供一个接口 , 使客户端在不必指定产品的具体情况下 , 创建多个产品族中的产品对象 。
工厂模式中的每一个形态都是针对一定问题的解决方案 , 工厂方法针对的是多个产品系列结构;而抽象工厂模式针对的是多个产品族结构 , 一个产品族内有多个产品系列 。
抽象工厂模式相对于工厂方法模式来说 , 就是工厂方法模式是针对一个产品系列的 , 而抽象工厂模式是针对多个产品系列的 , 即工厂方法模式是一个产品系列一个工厂类 , 而抽象工厂模式是多个产品系列一个工厂类 。在抽象工厂模式中 , 客户端不再负责对象的创建 , 而是把这个责任丢给了具体的工厂类 , 客户端只负责对对象的调用 , 从而明确了各个类的职责 。并且当一系列相互关联的产品被设计到一个工厂类里后 , 客户端的调用将会变得非常简单 , 而且 , 如果要更换这一系列的产品 , 则只需要更换一个工厂类即可 。
工厂模式,简单工厂模式,抽象工厂模式三者有什么区别工厂模式、简单工厂模式、抽象工厂模式三者的区别:
1、创建对象不同 。创建对象时 , “工厂模式”使用Factory模式替代使用new创建对象;“简单工厂模式”使用fw模式建立对象;“抽象工厂模式”则使用迭代模式创建对象 。
2、定义变量不同 。“工厂模式”不用事先定义变量 , 使用时随时引用便可 。“简单工厂模式” , 使用参数或者配置文件等事先定义好的变量 , 然后利用分支判断初始化具体产品类并返回 。“抽象工厂模式则”不符合“开发-封闭”原则 , 每次增加产品 , 都需要修改类方法 。
3、接口数量不同 。“工厂模式”有两至三个接口 。“简单工厂模式”只有一个接口 。抽象工厂模式理论上具有无限个接口 。
扩展资料
编程使用“工厂模式”的优缺点:
1、优点:
方便扩展算法 , 比如增加一个开根号的功能 , 我们只要继续继承运算类就行了 , 同时客户端也就是使用者不知道具体的实现细节 , 只要给出相关标示符 , 工厂函数就马上给他创建一个他想要的实体就行了 。减少了使用者和功能开发者之间的耦合度 。
2、缺点:
在进行扩展的时候 , 我们要更改工厂函数里面的那个分支语句Switch , 这样便破坏了OCP , 而且当有多级结构继承的时候 , 简单工厂就会因为只能对应平行一层记得继承 , 不得不使得好多类继承同一个接口 , 然后得到A*B这么多的工厂实体可能 , 工厂函数很难维护 。
参考资料来源:百度百科--工厂模式

Java抽象工厂模式 抽象工厂模式

文章插图
抽象工厂模式需求改变时怎么修改代码抽象工厂模式定义:提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类 。
好处:经常用层数据层 , 便于更换数据库产品 , 灵活性强 , 让具体的创建实例过程和客户端分离 。
反射技术:提供了封装程序集、模块和类型的对象 。可以使用反射动态地创建类型的实例 , 将类型绑定到现有对象 , 或从现有对象中获取类型 。
语法格式:Assembly.load("程序集名称").CreatInstance("命名空间 .类名称")
基础介绍完毕 , 下面逐步认识实例中的应用:
程序采用三层架构 , 利用抽象工厂实现了DAL和BLL分离 , 这是包图:
DAL数据层:
IDAL层和DAL层的关系:
工厂层关系:
代码实现:
BLL层方法:
''' summary
''' 增加用户
''' /summary
''' param name="userInfo"实体类/param
''' returns返回不同的情况/returns
''' remarks不同情况代表不同的数值/remarks
Function AddUserInfo(ByVal userInfo As UserInfo) As Integer
Dim iUser As IDAL.IUser
Dim intAdd As Integer
Dim btnAdd As Boolean
Dim dsSelect As New DataSet

秒懂生活扩展阅读