IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 设计者模式-工厂模式 -> 正文阅读

[Java知识库]设计者模式-工厂模式

????????简介:

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

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

? ? ? ?实现:

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

? ? ? ? 咱们实现需要哪些呢

?Car 接口? ? ? ? ? ? ??

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

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

?CarFactory 创建车的工厂

咱们首先编写Car接口


/**
 * 车的接口
 * @author: shenwang
 * Date: 2021/10/20
 */
public interface Car {
    /**
     * 启动车的方法
     */
    void drive();
}

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

/**
 * 法拉利
 * @author: shenwang
 * Date: 2021/10/20
 */
public class Ferrari implements Car {
    /**
     * 启动车的方法
     */
    public void drive() {
        System.out.println("法拉利发动喽~");
    }
}

紧接着是Wuling

/**
 * 五菱宏光
 * @author: shenwang
 * Date: 2021/10/20
 */
public class Wuling implements Car {
    /**
     * 启动车的方法
     */
    public void drive() {
        System.out.println("五菱宏光发动喽~");
    }
}

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

/**
 * 创建车的工厂
 * @author: shenwang
 * Date: 2021/10/20
 */
public class CarFactory {
    /**
     * 根据车的名称 获取车的实例
     * @param carName
     * @return
     */
    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测试一下吧~

/**
 * @author: shenwang
 * Date: 2021/10/20
 */
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、调用者只关心产品的接口,而不需要去关系产品的具体实现?。

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

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

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 10:49:50  更:2021-10-22 10:50:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年10日历 -2024/10/27 6:20:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码