工厂方法
定义:通过工厂来创建对象
Animal.java
package com.fanjia.factorymathodmode;
public abstract class Animal {
public abstract void eat();
}
Dog.java
package com.fanjia.factorymathodmode;
public class Dog extends Animal{
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("gnow bone");
}
}
Car.java
package com.fanjia.factorymathodmode;
public class Cat extends Animal {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("eat fish");
}
}
AnimalFactory.java
package com.fanjia.factorymathodmode;
public interface AnimalFactory {
public Animal creatAnimal();
}
DogFactory.java
package com.fanjia.factorymathodmode;
public class DogFactory implements AnimalFactory{
@Override
public Animal creatAnimal(){
// TODO Auto-generated method stub
Dog dog = new Dog();
return dog;
}
}
CatFactory.java
package com.fanjia.factorymathodmode;
import com.fanjia.day20200805.AnimalFactroy;
public class CatFactory implements AnimalFactory{
@Override
public Animal creatAnimal() {
// TODO Auto-generated method stub
Cat c1 = new Cat();
return c1;
}
}
测试
Demo01.java
package com.fanjia.factorymathodmode;
public class Demo01 {
public static void main(String[] args) {
//工厂方法模式
DogFactory df = new DogFactory();
Dog dog =(Dog) df.creatAnimal();
System.out.println(dog);
}
}