![a224530b2982948eb6c35ad80809aebb.png](https://i-blog.csdnimg.cn/blog_migrate/72faeaeae02d54379321519eff98e49c.jpeg)
引言
在我们写工厂类的时候,可能会根据不同的类型(type)生成不同的对象。但在工厂类初始化的时候,我们需要将某个类型的所有类全部初始化才能达到我们的目的。
举个例子,我们定义了很多动物(Animal),我们需要一个AnimalFactory根据动物类型(type)去构建不同的动物实例。如下代码所示:
我们先构建一个动物基础类型,包含两个方法:
- getType:获取动物类型
- train:训练动物
public interface IAnimal {/** * 获取动物种类 * @return */int getType();/** * 训练动作 */void train();}
然后我们定义了多个动物实现IAnimal接口
public class TDog implements IAnimal {/** * 获取动物种类 * * @return */@Overridepublic int getType() {return 1;}/** * 训练动作 */@Overridepublic void train() {System.out.println("握手");}}
public class TLion implements IAnimal{/** * 获取动物种类 * * @return */@Overridepubl