工厂方法模式-案例二

步骤一:

定义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
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值