Java设计模式-工厂模式

74 篇文章 0 订阅

目录

工厂模式

创建一个动物工厂接口

创建两个动物实现类

创建一个动物工厂类

测试效果


工厂模式

定义一个创建对象的接口,子类实现该接口(可多个),提供一个工厂方法用于创建。

例如:我们要设计一个动物工厂,根据自己的要求获取对应的类,如dog、cat。

创建一个动物工厂接口

 

 

package com.ispeasant.java.designpattern.factorypattern;

/**
 * 工厂模式接口-动物
 */
public interface FactoryPatternIntAnimal {
    void speak();
}

 

创建两个动物实现类

 

 

package com.ispeasant.java.designpattern.factorypattern;

/**
 * 实现接口-猫
 */
public class FactoryPatternImpCat implements FactoryPatternIntAnimal {
    // 重写方法
    @Override
    public void speak() {
        System.out.println("喵喵。。。");
    }
}

 

 

 

package com.ispeasant.java.designpattern.factorypattern;

/**
 * 实现接口-狗
 */
public class FactoryPatternImpDog implements FactoryPatternIntAnimal {
    // 重写方法
    @Override
    public void speak() {
        System.out.println("汪汪。。。");
    }
}

 

创建一个动物工厂类

 

 

package com.ispeasant.java.designpattern.factorypattern;

/**
 * 创建一个工厂类-动物工厂
 */
public class AnimalFactory {
    /**
     * 定义一个获取类型方法,用接口做返回类型
     *
     * @param animalType
     * @return
     */
    public FactoryPatternIntAnimal getAnimal(String animalType) {
        if (animalType == null) {
            return null;
        } else if (animalType.equals("dog")) {
            return new FactoryPatternImpDog();
        } else if (animalType.equals("cat")) {
            return new FactoryPatternImpCat();
        } else {
            return null;
        }
    }
}

 

测试效果

 

 

package com.ispeasant.java.designpattern.factorypattern;

/**
 * 测试工厂模式
 */
public class TestAnimalFactory {
    public static void main(String[] args) {
        // 先创建一个工厂
        AnimalFactory animalFactory = new AnimalFactory();
        // 获取dog类
        FactoryPatternIntAnimal dog = animalFactory.getAnimal("dog");
        dog.speak();

        // 获取cat类
        FactoryPatternIntAnimal cat = animalFactory.getAnimal("cat");
        cat.speak();
    }
}

 

结果:

如果需要源码,可关注本人公众号,回复“2020073101”进行获取。

 


 

只要自己有时间,都尽量写写文章,与大家交流分享。

本人公众号:

CSDN博客地址:https://blog.csdn.net/ispeasant

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不务正业的猿

谢谢您的支持与鼓励!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值