步驟一:
定義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