关于“工厂方法模式”的具体讲解请看笔者博客
《设计模式》第二部分 创建型设计模式 第5章 工厂方法模式(A:C++实现)
此文是“工厂方法模式”的Java实现。
步骤一:抽象产品
package com;
public interface Product {
public void show();
}
步骤二:具体产品
package com;
public class ConcreteProduct1 implements Product{
public void show()
{
System.out.println("I'm ConcreteProduct1");
}
}
package com;
public class ConcreteProduct2 implements Product{
public void show()
{
System.out.println("I'm ConcreteProduct2");
}
}
步骤三:抽象工厂
package com;
public interface Creator {
public Product CreateProduct();
}
步骤四:具体工厂
package com;
public class ConcreteCreator1 implements Creator{
@Override
public Product CreateProduct() {
return new ConcreteProduct1();
}
}
package com;
public class ConcreteCreator2 implements Creator{
@Override
public Product CreateProduct() {
return new ConcreteProduct2();
}
}
步骤五:测试
package com;
public class Main {
public static void main(String[] args) {
Creator factoryA = new ConcreteCreator1 ();
Product productA = factoryA.CreateProduct();
productA.show();
Creator factoryB = new ConcreteCreator2 ();
Product productB = factoryB.CreateProduct();
productB.show();
}
}
结果如下所示: