资讯 小学 初中 高中 语言 会计职称 学历提升 法考 计算机考试 医护考试 建工考试 教育百科
栏目分类:
子分类:
返回
空麓网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
空麓网 > 计算机考试 > 软件开发 > 后端开发 > Java

通俗易懂的java设计模式(2)-工厂模式

Java 更新时间: 发布时间: 计算机考试归档 最新发布

通俗易懂的java设计模式(2)-工厂模式

什么是工厂模式

  • 工厂模式,是java中最常使用的设计模式之一,工厂模式,是一种创建对象的方式,他对外提供了一个接口,客户端可以使用这个接口来创建对象,这样创建对象,不会暴露我们内部的创建逻辑,从而保证了安全性。

  • 需要解决的问题

    • 如何设计接口?
    • 如何根据不同的条件去初始化不同的类

工厂模式的优缺点

  • 优点:
    • 用户想创建一个对象,只需要知道这个对象的名称
    • 易扩展,想要增加一个新的类型的对象,只需要扩展一个工厂类
    • 调用者只关心接口,不会关系底层的设计逻辑
  • 缺点
    • 每增加一个新的类型的对象,都要扩展一个对象类和对象工厂,这样整个系统中的类直线上升,这样会影响到系统的复杂性。

简单的代码实现

  • step1:创建Animal接口
public interface Animal {
    void shouting();
}
  • 创建具体的动物去实现接口
public class Cat implements Animal{
    @Override
    public void shouting() {
        System.out.println("喵喵喵~");
    }
}
public class Dog implements Animal{
    @Override
    public void shouting() {
        System.out.println("汪汪汪~");
    }
}
public class Chick implements Animal{
    @Override
    public void shouting() {
        System.out.println("鸡你太美,baby~");
    }
}
  • step3:创建一个工厂,这个工厂可以基于用户传递的条件来生成具体的实体类
public class AnimalFactory {
    //下面这个方法用于接受条件并判断生成哪个实体类
    public Animal makeAnimal(String animal){
        if (animal == null){
            return null;
        }

        if (animal.equalsIgnoreCase("CAT")){
            return new Cat();
        }else if (animal.equalsIgnoreCase("Dog")){
            return new Dog();
        }else if (animal.equalsIgnoreCase("Chick")){
            return new Chick();
        }
        
        return null;
    }
}
  • Step4:接下来就可以使用刚刚的动物工厂去创建具体的动物实体类辣
public class TestFactory {
    public static void main(String[] args) {
        AnimalFactory factory = new AnimalFactory();

        //获取Cat
        Animal cat = factory.makeAnimal("cat");
        cat.shouting();;

        //获取Dog
        Animal dog = factory.makeAnimal("dog");
        dog.shouting();

        //获取Chick
        Animal chick = factory.makeAnimal("chick");
        chick.shouting();
    }
}
转载请注明:文章转载自 http://www.konglu.com/
本文地址:http://www.konglu.com/it/1093898.html
免责声明:

我们致力于保护作者版权,注重分享,被刊用文章【通俗易懂的java设计模式(2)-工厂模式】因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2023 成都空麓科技有限公司

ICP备案号:蜀ICP备2023000828号-2