工厂方法模式-案例二

步骤一:

定义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("创建了一只黑色的牧羊犬");
    }
}
发布了37 篇原创文章 · 获赞 62 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_40032967/article/details/105099493