理解工厂方法模式在于一个工厂生产一类产品。
下面用汽车生产的案例说明这种模式。假设某汽车工厂生产两类汽车,一类是红旗,另一类是长安。那么这个工厂可以划分为两部分,这两部分分别生产红旗和长安汽车。现在我们想要生产一辆红旗汽车,只需要到对应的工厂去生产一辆就行。


- package FactoryMethod;
-
- public interface Car {
- void name();
- }
- package FactoryMethod;
-
- public interface CarFactory {
- public Car getCar();
- }
- package FactoryMethod;
-
- public class ChannaAuto implements Car{
- @Override
- public void name() {
- System.out.println("生产了一辆长安汽车");
- }
- }
- package FactoryMethod;
-
- public class ChannaFactory implements CarFactory{
- @Override
- public Car getCar() {
- return new ChannaAuto();
- }
- }
- package FactoryMethod;
-
- public class HongqiAuto implements Car {
- @Override
- public void name() {
- System.out.println("生产了一辆红旗汽车");
- }
- }
- package FactoryMethod;
-
- public class HongqiFactory implements CarFactory{
- @Override
- public Car getCar() {
- return new HongqiAuto();
- }
- }
- package FactoryMethod;
-
- public class Consumer {
- public static void main(String[] args) {
- Car c1 = new HongqiFactory().getCar();
- Car c2 = new ChannaFactory().getCar();
- c1.name();
- c2.name();
- }
- }

想要红旗汽车就从HongqiFactory中使用getCar方法就拿到了一辆红旗汽车,使用其中的name方法获取汽车的信息。