ステップ1:
インタフェース定義DogFactory.java
package FactoryMethod;
public interface DogFactory {
Dog createDog();
}
ステップ2:
ファクトリ実装クラスは、2を定義します
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();
}
}
ステップ3:
プロパティを定義するために設計された抽象クラスの犬の定義
Dog.java
package FactoryMethod;
//狗狗接口
public abstract class Dog {
//创建金毛的抽象方法
public abstract void white();
//创建柯基的抽象方法
public abstract void yellow();
//创建牧羊犬的抽象方法
public abstract void black();
}
ステップ4:
牧歌シェパード犬とプロパティの定義
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("创建了一只黑色的牧羊犬");
}
}