没有合适的资源?快使用搜索试试~ 我知道了~
JAVA设计模式之工厂模式.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 113 浏览量
2023-11-01
09:14:56
上传
评论
收藏 527KB PDF 举报
温馨提示
试读
18页
JAVA设计模式之工厂模式.pdf
资源推荐
资源详情
资源评论
******
......
JAVA 设计模式之工厂模式
一、工厂模式的介绍
工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将
哪一个类实例化,不必事先知道每次要实例化哪一个类。
工厂模式的几种形态:
(1)简单工厂(Simple Factory)模式,又称静态工厂方法模式(Static Factory Method
Pattern)。
(2)工厂方法(Factory Method)模式,又称多态性工厂(Polymorphic Factory)
模式
或虚拟构造子(Virtual Constructor)模式;
(3)抽象工厂(Abstract Factory)模式,又称工具箱(Kit 或 Toolkit)模式。
二、简单工厂模式
2.1 简单工厂模式介绍
简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory
Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据自变量的不
同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,
被创建的实例通常都具有共同的父类。
******
......
2.2 简单工厂模式角色
(1)工厂类(Creator)角色:担任这个角色的是工厂方法模式的核心,含有与
应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往
由一个具体 Java 类实现。
(2)抽象产品(Product)角色:担任这个角色的类是工厂方法模式所创建的对
象的父类,或它们共同拥有的接口。抽象产品角色可以用一个 Java 接口或者 Java
抽象类实现。
(3)具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是
这个角色的实例,具体产品角色由一个具体 Java 类实现。
2.3 简单工厂模式的优缺点
简单工厂模式的优点如下:
(1)工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实
例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品;简单工厂
模式通过这种做法实现了对责任的分割,它提供了专门的工厂类用于创建对象。
(2)客户端无需知道所创建的具体产品类的类名,只需要知道具体产品类所对
应的参数即可,对于一些复杂的类名,通过简单工厂模式可以减少使用者的记忆
量。
(3)通过引入配置文件,可以在不修改任何客户端代码的情况下更换和增加新
的具体产品类,在一定程度上提高了系统的灵活性。
简单工厂模式的缺点如下:
******
......
(1)由于工厂类集中了所有产品创建逻辑,一旦不能正常工作,整个系统都要
受到影响。
(2)使用简单工厂模式将会增加系统中类的个数,在一定程序上增加了系统的
复杂度和理解难度。
(3)系统扩展困难,一旦添加新产品就不得不修改工厂逻辑,在产品类型较多
时,有可能造成工厂逻辑过于复杂,不利于系统的扩展和维护。
(3)简单工厂模式由于使用了静态工厂方法,造成工厂角色无法形成基于继承
的等级结构。
2.4 简单工厂模式的适用环境
(1)工厂类负责创建的对象比较少:由于创建的对象较少,不会造成工厂方法
中的业务逻辑太过复杂;
(2)客户端只知道传入工厂类的参数,对于如何创建对象不关心:客户端既不
需要关心创建细节,甚至连类名都不需要记住,只需要知道类型所对应的参数。
2.5 简单工厂模式的举例
例:
//抽象产品角色
public interface Car{
public void drive();
******
......
}
//具体产品角色
public class Benz implements Car{
public void drive() {
}
}
public class Bmw implements Car{
public void drive() {
}
}
//工厂类角色
public class Driver{
//工厂方法.注意 返回类型为抽象产品角色
public static Car driverCar(String s)throws Exception{
//判断逻辑,返回具体的产品角色给 Client
return new Benz();
return new Bmw();
else throw new Exception();
剩余17页未读,继续阅读
资源评论
hhappy0123456789
- 粉丝: 59
- 资源: 5万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功