目录
- 简介
- 包含角色
- uml类图
- java实现
- 优点和缺点
1. 简介
又称静态工厂方法模式,是不同的工厂方法模式的一个特殊实现。简单工厂模式就是由一个工厂类根据传入的参量决定创建出哪一种产品类的实例
2. 包含角色:
2.1 工厂角色:
担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体Java类实现。
2.2 抽象产品角色:
担任这个角色的类是由工厂方法模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用一个Java接口或者Java抽象类实现
2.3具体产品角色:
工厂方法模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体Java类实现。
3. uml类图
4. java实现
4.1 抽象产品角色
/**
* @program: pattern
* @description: 抽象产品角色
* @author: chengqj
* @create: 2018-08-06 09:08
**/
public interface Fruit {
void grow();
}
4.2 具体产品角色
/**
* @program: pattern
* @description: 工厂角色
* @author: chengqj
* @create: 2018-08-06 09:09
**/
public class FruitFactory {
public static Fruit createFruit(){
return new AppleFruit();
}
}
4.3 工厂角色
/**
* @program: pattern
* @description: 工厂角色
* @author: chengqj
* @create: 2018-08-06 09:09
**/
public class FruitFactory {
public static Fruit createFruit(){
return new AppleFruit();
}
}
4.4 测试
public static void main(String[] args) {
FruitFactory.createFruit().grow();
}
5. 优点和缺点
5.1 优点:
客户端需要的什么产品,可以直接得到,逻辑判断在工厂里面
5.2 缺点:
扩展性一般,产品都是一个产品族下面的产品,对于不在产品族中的产品,没办法去扩展,另外获得具体某种产品的逻辑放在工厂里面,新添加产品的时候就需要修改工厂里面的代码。