简单工厂模式(SimpleFactory Pattern):

  又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

1. 汽车接口

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 类描述:(汽车接口)
 * @author baobaolan
 * @createTime 2018年1月10日
 * @version v1.0
 */
public interface Car {

    void run();

}

2.奥迪类

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 类描述:(奥迪车类)
 * @author baobaolan
 * @createTime 2018年1月10日
 * @version v1.0
 */
public class AodiCar implements Car {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("生成了一辆奥迪!");
    }

}

3.奔驰类

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 类描述:(奔驰车类)
 * @author baobaolan
 * @createTime 2018年1月10日
 * @version v1.0
 */
public class BenchiCar implements Car {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("生成了一辆奔驰!");
    }

}

4.汽车工厂

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 类描述:(汽车工厂)
 * @author baobaolan
 * @createTime 2018年1月10日
 * @version v1.0
 */
public class CarFactory {

    //jdk1.7 switch支持字符串
    public static Car getCar(String carType){
        Car car = null;
        switch (carType) {
        case "奥迪":
            car = new AodiCar();
            break;
        case "奔驰":
            car = new BenchiCar();
            break;
        default:
            break;
        }
        return car;
    }

}

5.测试类

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 类描述:()
 * @author baobaolan
 * @createTime 2018年1月10日
 * @version v1.0
 */
public class Main {

    public static void main(String[] args) {
        Car car = CarFactory.getCar("奥迪");
        car.run();

    }
}

6.结果打印

JAVA 工厂模式:简单工厂的更多相关文章

  1. Java设计模式之-----工厂模式(简单工厂,抽象工厂)

    一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的. 工厂模式在<Java与模式>中分为三类:1)简单工厂模式(Simple Factor ...

  2. Java设计模式之工厂模式(简单工厂模式+工厂方法模式)

    摘自http://blog.csdn.net/jason0539/article/details/23020989 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是 ...

  3. 详解设计模式之工厂模式(简单工厂+工厂方法+抽象工厂) v阅读目录

    1楼留头头大神:http://www.cnblogs.com/toutou/p/4899388.html   v阅读目录 v写在前面 v简单工厂模式 v工厂方法模式 v抽象工厂模式 v博客总结 v博客 ...

  4. js原生设计模式——3简单工厂模式\简单工厂模式封装简单对象

    1.Factory基本写法 <!DOCTYPE html><html lang="en"><head>    <meta charset= ...

  5. 抽象工厂模式&简单工厂模式

    抽象工厂模式 优点: 如IFactory factory=new AccessFactory(),在一个应用中只需要初始化一次,这就使得改变应用的时候变得非常容易:其次它让具体的创建实例过程与客户端分 ...

  6. Java-马士兵设计模式学习笔记-工厂模式-简单工厂

    一.概述 1.目标:要控制任意类型交通工具的生产模式 2.目标有两层意思(1)任意类型 (2)生产模式,所以对应的,要这两个层面上抽象(Movable,VehicleFactory),利用接口,实现多 ...

  7. Java中设计模式之工厂模式-4

    一.工厂模式由来 1)还没有工厂时代:假如还没有工业革命,如果一个客户要一款宝马车,一般的做法是客户去创建一款宝马车,然后拿来用. 2)简单工厂模式:后来出现工业革命.用户不用去创建宝马车.因为客户有 ...

  8. python 设计模式之工厂模式 Factory Pattern (简单工厂模式,工厂方法模式,抽象工厂模式)

    十一回了趟老家,十一前工作一大堆忙成了狗,十一回来后又积累了一大堆又 忙成了狗,今天刚好抽了一点空开始写工厂方法模式 我看了<Head First 设计模式>P109--P133 这25页 ...

  9. PHP简单工厂模式、工厂方法模式和抽象工厂模式比较

    PHP工厂模式概念:工厂模式是一种类,它具有为您创建对象的某些方法.您可以使用工厂类创建对象,而不直接使用 new.这样,如果您想要更改所创建的对象类型,只需更改该工厂即可.使用该工厂的所有代码会自动 ...

  10. PHP简单工厂模式、工厂方法模式和抽象工厂模式

    PHP工厂模式概念:工厂模式是一种类,它具有为您创建对象的某些方法.您可以使用工厂类创建对象,而不直接使用 new.这样,如果您想要更改所创建的对象类型,只需更改该工厂即可.使用该工厂的所有代码会自动 ...

随机推荐

  1. jsp基础知识点——思维导图

    如图 思维导图图片链接 http://www.edrawsoft.cn/viewer/public/s/0b8cd083478732 有道云笔记图片链接 http://note.youdao.com/ ...

  2. TWX 比较好的多线程使用实例

    using Newtonsoft.Json;using System;using System.Collections.Generic;using System.Configuration;using ...

  3. Git fetch和git pull的区别, 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists).

    Git fetch和git pull的区别, 解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists). Git fet ...

  4. JavaScript 兼容各大浏览器阻止冒泡事件

    JavaScript 兼容各大浏览器阻止冒泡事件 function stopEvent(event) { //阻止冒泡事件 //取消事件冒泡 var e = arguments.callee.call ...

  5. 使用SpringMVC时报错HTTP Status 405 - Request method 'GET' not supported

    GET方法不支持.我出错的原因在于,在JSP中我希望超链接a以post方式提交,但是这里写js代码时出错. <script type="text/javascript"> ...

  6. selenium学习笔记(webdriver下载配置)

    selenium安装后默认安装firefox可以直接使用,当然可以通过其它浏览器 博主这里整理了:chrome . IE 首先是下载地址 http://docs.seleniumhq.org/down ...

  7. Ubuntu16.04 Kdevelop汉化及配置

    关闭Kdevelop sudo apt-get install kdevelop-l10n 再打开. 字体选择 Sans Serif :style:Normal:这样更舒服且不影响中文的排版,如何改成 ...

  8. SQLite在C#中的使用

    SQLite是一款轻型的数据库,在一些数据量不太大的程序中,它暂用的资源非常低.支持很多操作系统和许多语言,所以还是很方便的.在C#中,要用的话可以通过网站来下载或者在VS中通过NuGet来下载.这个 ...

  9. 三十五 Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy分布式爬虫要点

    1.分布式爬虫原理 2.分布式爬虫优点 3.分布式爬虫需要解决的问题

  10. iptables(二)iptables实际操作之规则查询

    如果你是一个新手,在阅读如下文章时,请坚持读到最后,读的过程中可能会有障碍,但是在读完以后,你会发现你已经明白了. 在进行iptables实验时,请务必在测试机上进行. 之前在iptables的概念中 ...