步骤一:
定义DogFactory.java接口
package FactoryMethod;
public interface DogFactory {
Dog createDog();
}
步骤二:
定义工厂的两个实现类
muyangFactory.java
package FactoryMethod;
/**
* @program: MyFactory
* @ClassName muyangFactory
* @description:
* @author: hc
* @create: 2020-03-19 21:46
* @Version 1.0
**/
class muyangFactory implements DogFactory {
@Override
public Dog createDog() {
return new muyang();
}
}
tianyuanFactory.java
package FactoryMethod;
/**
* @program: MyFactory
* @ClassName ConcreteAnimal
* @description:
* @author: hc
* @create: 2020-03-19 00:33
* @Version 1.0
**/
class tianyuanFactory implements DogFactory {
@Override
public Dog createDog() {
return new tianyuan();
}
}
步骤三:
定义狗狗的抽象类,专门用来定义属性
Dog.java
package FactoryMethod;
//狗狗接口
public abstract class Dog {
//创建金毛的抽象方法
public abstract void white();
//创建柯基的抽象方法
public abstract void yellow();
//创建牧羊犬的抽象方法
public abstract void black();
}
步骤四:
定义田园犬和牧羊犬属性
tianyuan.java
package FactoryMethod;
class tianyuan extends Dog {
@Override
public void white() {
System.out.println("创建了一只白色的田园犬");
}
@Override
public void yellow() {
System.out.println("创建了一只黄色的田园犬");
}
@Override
public void black() {
System.out.println("创建了一只黑色的田园犬");
}
}
muyang.java
package FactoryMethod;
/**
* @program: MyFactory
* @ClassName muyang
* @description:
* @author: hc
* @create: 2020-03-19 21:46
* @Version 1.0
**/
class muyang extends Dog {
@Override
public void white() {
System.out.println("创建了一只白色的牧羊犬");
}
@Override
public void yellow() {
System.out.println("创建了一只黄色的牧羊犬");
}
@Override
public void black() {
System.out.println("创建了一只黑色的牧羊犬");
}
}
步骤五:
实现类index.java
package FactoryMethod;
import FactoryMethod.Dog;
/**
* @program: MyFactory
* @ClassName FactoryMethod.Index
* @description:
* @author: hc
* @create: 2020-03-19 00:59
* @Version 1.0
**/
public class Index {
public static void main(String[] args) {
DogFactory dog1 = new tianyuanFactory();
Dog tianyuandog = dog1.createDog();
tianyuandog.white();
tianyuandog.yellow();
tianyuandog.black();
System.out.println("------------------------------------------------------------");
DogFactory dog2 = new muyangFactory();
Dog muyangDog = dog2.createDog();
muyangDog.white();
muyangDog.yellow();
muyangDog.black();
}
}
运行结果:
创建了一只白色的田园犬
创建了一只黄色的田园犬
创建了一只黑色的田园犬
------------------------------------------------------------
创建了一只白色的牧羊犬
创建了一只黄色的牧羊犬
创建了一只黑色的牧羊犬
Process finished with exit code 0