public class LiuXiang implement Runner{ @Override public void run(){ //刘翔开始跑路了~! } }
1 2 3 4 5 6
public class Bolt implement Runner{ @Override public void run(){ //博尔特开始跑路了~! } }
如上,我们将博尔特和刘翔都抽象成了跑步者。然后我们实现跑步者生产工厂
1 2 3 4 5 6 7 8 9
public class RunnerFactory{ public Runner createRunner(Condition condition){ if(condition.xxxx){ return new LiuXiang(); }else{ return new Bolt(); } } }
通过传入的条件,来决定生产哪一类跑者。
这就是简单工厂模式,主要职责是生产实例
2、工厂方法模式
工厂方法模式抽象一些,主要是将生成具体产品的任务发给具体的产品工厂。
1 2 3
public interface AbstractRunnerFactory{ Runner provideRunner(); }
国家是个抽象对象,功能是提供运动员
1 2 3 4 5 6
public class ChinaRunnerProvider implements AbstractRunnerFactory{ @Override public Runner provideRunner(){ return new LiuXiang(); } }
1 2 3 4 5 6
public class USRunnerProvider implements AbstractRunnerFactory{ @Override public Runner provideRunner(){ return new Bolt(); } }
这样子我们拥有两个生产运动员的工厂国家了。
1 2 3 4 5 6
public class Test{ public static void main(String[] args){ AbstractCountry china = new China(); china.provideRunner();//生产出了运动员 } }