工厂模式
Posted mabaoqing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式相关的知识,希望对你有一定的参考价值。
实现了创建者和调用者的分离
简单工厂模式:
- 只有一个工厂,返回不同类型的产品
/**
* 简单工厂模式又称静态工厂模式,增加新产品必须修改代码或修改配置文件
*/
public class AnimalFactory{
// 方法一,直接返回一个实际对象
public static Cat createCat() {
return new Cat();
}
public static Dog createDog() {
return new Dog();
}
//方法二,利用多态返回一个实现了接口对象
public static Animal createAnimal(String type) {
if(type.equals("cat")) {
Animal cat = new Cat();
return cat;
} else if(type.equals("dog")) {
Animal dog = new Dog();
return dog;
}
return null;
}
// 方法三,可以利用类名返回对象,使用properties配置文件
}
工厂方法模式:
- 概述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
- 适用性:
- 当一个类不知道它所必须创建的对象的类的时候
- 当一个类希望由它的子类来指定它所创建的对象的时候
- 当类将创建对象的职责委托给多个帮助子类的某一个,并且你希望将哪一个帮助子类是代理这一信息局部化的时候
- 便于增加新产品,只需增加产品和产品工厂类并实现相应的接口
抽象工厂模式:
小结:
? 一般不会直接代码new工厂对象(单例工厂方法),可以在配置中指定,这样一来客户就只能够看到抽象的类,接触不到具体实现。
? 工厂模式的经典案例:BeanFactory、SessionFactory
以上是关于工厂模式的主要内容,如果未能解决你的问题,请参考以下文章
设计模式简单工厂模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )