概述
工厂方法设计模式:
可以理解为简单工厂设计模式的升级
简单工厂设计模式和工厂方法设计模式的异同
相同点
简单工厂设计模式可以获取实例
工厂方法设计模式也可以获取实例
不同点
工厂方法设计模式遵守了开闭原则
比如新增了一个产品C,工厂方法设计模式可以让产品C继承接口Product
创建产品C的工厂实现抽象工厂就可以实现目的。
而简单工厂设计模式就需要更改已有代码来达到目的。
类图
代码
/**
* @ClassName: FactoryMethod
* @Author: 楠
* @Description: 工厂方法设计模式
*/
public class FactoryMethod {//该类可以理解为client
public Product creat(){
Creator creator=new ConcreteProductA();
Product product = creator.creatProduct();
return product;
}
public static void main(String[] args) {
FactoryMethod factoryMethod=new FactoryMethod();
Product creat = factoryMethod.creat();
}
}
//抽象工厂
interface Creator{
Product creatProduct();
}
//具体工厂
class ConcreteProductA implements Creator{
@Override
public Product creatProduct() {
return new ProductA();
}
}
//具体工厂
class ConcreteProductB implements Creator{
@Override
public Product creatProduct() {
return new ProductB();
}
}
//抽象产品
interface Product{
void showName();
}
//具体产品
class ProductA implements Product{
@Override
public void showName() {
System.out.println("我是产品A");
}
}
//具体产品
class ProductB implements Product{
@Override
public void showName() {
System.out.println("我是产品B");
}
}