因为 简单工厂模式 有点以来工厂,会使工厂过于复杂,新加产品要改工厂代码,这样不行,于是有了普通工厂 是对简单工厂的一个抽象
package com.mcd.test.test;
// 1 定义工厂 公共接口
abstract class Factory{
public abstract Product Manufacture();
}
// 2 定义产品 公共接口
abstract class Product{
public abstract void Show();
}
// 创建具体产品
class ProductA extends Product{
@Override
public void Show() {
System.out.println("生产出了产品A");
}
}
class ProductB extends Product{
@Override
public void Show() {
System.out.println("生产出了产品B");
}
}
// 创建具体工厂
//工厂A类 - 生产A类产品
class FactoryA extends Factory{
@Override
public Product Manufacture() {
return new ProductA();
}
}
//工厂B类 - 生产B类产品
class FactoryB extends Factory{
@Override
public Product Manufacture() {
return new ProductB();
}
}
//生产工作流程
public class Demo02 {
public static void main(String[] args){
//客户要产品A
FactoryA mFactoryA = new FactoryA();
mFactoryA.Manufacture().Show();
//客户要产品B
FactoryB mFactoryB = new FactoryB();
mFactoryB.Manufacture().Show();
}
}
总结
1 写工厂接口
2 写产接口
3 写工厂实现类
4 写产品实现类
5 写应用
缺点 : 啰嗦 代码很长 成对出现 于是有了 抽象工厂