ファクトリメソッドパターン - ケースII

ステップ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("创建了一只黑色的牧羊犬");
    }
}
公開された37元の記事 ウォン称賛62 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_40032967/article/details/105099493