栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

设计者模式-工厂模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计者模式-工厂模式

        简介:

        工厂模式是创建型模式的一种,使用了工厂模式,咱们只需要告诉它我们需要要个实现类,它就会给我创建哪个实现类,咱们就不需要去知道或者是关注它如何创建。

        列子:如果咱们需要一辆汽车,可以直接从工厂里面提货,咱们就不用去了解这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。 2、Hibernate 换数据库只需换方言和驱动就可以。

       实现:

         咱们去实现一下:目标是咱们用创建车的一个工厂,可以创建很多种车,咱们告诉创建车的工厂咱们需要一辆法拉利,工厂就会给咱们一辆法拉利,咱们需要一辆五菱宏光 工厂就会给咱们一辆五菱宏光,至于法拉利和五菱宏光是怎么做出来的咱们不需要去管。

        咱们实现需要哪些呢

 Car 接口              

 Ferrari 车的实现 法拉利,实现Car接口

 Wuling 车的实现 五菱宏光,实现Car接口

 CarFactory 创建车的工厂

咱们首先编写Car接口


public interface Car {
    
    void drive();
}

紧接着咱们创建法拉利(Ferrari)和五菱宏光(Wuling)的实例,首先是Ferrari

public class Ferrari implements Car {
    
    public void drive() {
        System.out.println("法拉利发动喽~");
    }
}

紧接着是Wuling

public class Wuling implements Car {
    
    public void drive() {
        System.out.println("五菱宏光发动喽~");
    }
}

然后咱们再去编写咱们的工厂,CarFactory 主要用来为咱们创建车子

public class CarFactory {
    
    public Car getCar(String carName){
        if(carName==null){
            return null;
        }
        if(carName.equalsIgnoreCase("FERRARI")){
            return new Ferrari();
        }else if(carName.equalsIgnoreCase("WULING")){
            return new Wuling();
        }
        return null;
    }
}

 最后最后,咱们再去写一个Demo测试一下吧~

public class Demo {
    public static void main(String[] args) {
        CarFactory carFactory=new CarFactory();
        //获取法拉利,并发动法拉利
        Car ferrari = carFactory.getCar("FERRARI");
        ferrari.drive();

        //获取五菱宏光,并且发动五菱宏光
        Car wuling = carFactory.getCar("WULING");
        wuling.drive();
    }
}

运行结果:

 工厂模式的有缺点:

优点: 1、一个调用者想创建一个对象,只需要知道对象的名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、调用者只关心产品的接口,而不需要去关系产品的具体实现 。

缺点:每次增加一个产品时,都需要增加一个具体类和对象实现工厂,使得系统中类的个数成倍增加,在一定程度上增加了系统的复杂度,同时也增加了系统具体类的依赖。

点个赞再走吧~持续更新哦,一起学习嘿嘿

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/336561.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号