java工厂模式Factory

工厂模式:

1)我们首先要设计车汽车需要那些流程(face)

package light.zhang.model.model.facotry;

/**
 * 车子建造过程,定义好流程
 * @author witts
 *
 */
public interface ICarface {
    /**
     * 绘制图片
     */
    void drawImage();
    /**
     * 设计模型
     */
    void createModel();
    /**
     * 实现生产
     */
    void implCar();
    /**
     * 测试车子
     */
    void testCar();
}

2.汽车生产商(实现)

package light.zhang.model.model.facotry;

/**
 * 奥迪生厂商
 * @author witts
 *
 */
public class AodiCompany  implements ICarface {
    @Override
    public void drawImage() {
        System.out.println("奥迪公司-图片模型");
    }

    @Override
    public void createModel() {
        System.out.println("奥迪公司-创建模型");
    }

    @Override
    public void implCar() {
        System.out.println("奥迪公司-生产车体");
    }

    @Override
    public void testCar() {
        System.out.println("奥迪公司-测试车体");
    } 

}

package light.zhang.model.model.facotry;

/** * 宝马公司 * @author witts  */public class BMWCompany implements ICarface {    @Override    public void drawImage() {         System.out.println("宝马公司-图片模型");    }

    @Override    public void createModel() {         System.out.println("宝马公司-创建模型");    }

    @Override    public void implCar() {        System.out.println("宝马公司-生产车体");    }

    @Override    public void testCar() {         System.out.println("宝马公司-测试车体");    } }  

3)4S店现在要整理奥迪宝马的车,4S店就是一个工厂,他负责把奥迪宝马的汽车整理,用户去买车只需要告诉销售员我要买什么车

package light.zhang.model.model.facotry;

/**
 * 4S店开始整理要销售那些车?
 * @author witts
 *
 */
public class Car4SDianFactory {

    public ICarface getCar(int type) {
         if(type == 1) {
             return new AodiCompany();
         }
         if(type == 2) {
             return new BMWCompany();
         }
         return null;
    }
}

4)用户开始买车(调用)

package light.zhang.model.model.facotry;

/**
 * 用户开始去4S店买车
 * @author witts
 *
 */
public class UserShoppingCar {

    public static void main(String[] args) {
        Car4SDianFactory factory=new Car4SDianFactory();
        ICarface aodiCar=factory.getCar(1);//奥迪公司的汽车
        aodiCar.testCar();

        ICarface bmwCar =  factory.getCar(2);//宝马公司的汽车
        bmwCar.testCar();
    }
}

原文地址:https://www.cnblogs.com/light-zhang/p/8384302.html

时间: 2024-11-03 22:20:26

java工厂模式Factory的相关文章

Java工厂模式(Factory模式)

工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量. 我们以类Sample为例,

Java工厂模式

Java工厂模式 看了这么多关于工厂模式的解说,还是认为这篇文章讲的好理解,贴出来和大家分享分享. 一.引子 话说十年前,有一个****户,他家有三辆汽车--Benz奔驰.Bmw宝马.Audi奥迪,还雇了司机为他开车.只是,****户坐车时总是怪怪的:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi说"开奥迪车!".你一定说:这人有病!直接说开车不即可了?! 而当把这个****户的行为放到我们程序设计中来时,会发

设计模式(一)工厂模式Factory(创建类型)

设计模式一 工厂模式Factory 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.可是在一些情况下, new操作符直接生成对象会带来一些问题. 举例来说, 很多类型对象的创造须要一系列的步骤: 你可能须要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你须要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 "过程",不仅是一个操作,像一部大机器中的一个齿轮传动. 模式的问题:你怎样能轻松方

java 工厂模式变形的多种应用

工厂模式在项目开发中是使用效率非常高的,意思就是说定义一个用于创建对象的接口,让子类去决定实例化哪一个类.这就是一个工厂类的示意图 接着来一个简单的例子: 如上图所示,我们首先定义我们的产品抽象类接口,也可以是抽象类: package factory; public abstract class PlatForm { public void search(){ System.out.println("你搜索的结果是......"); } public abstract void mus

设计模式一 工厂模式Factory

设计模式一 工厂模式Factory 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对象的建立就是一个 "过程",不仅是一个操作,像一部大机器中的一个齿轮传动. 模式的问题:你如何能轻松方便

设计模式(一)工厂模式Factory(创建型)(转)

原文链接:http://blog.csdn.net/hguisu/article/details/7505909 设计模式一 工厂模式Factory 在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的.但是在一些情况下, new操作符直接生成对象会带来一些问题.举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象. 在这些情况,新对

Java 工厂模式学习

工厂模式分三种:简单工厂.工厂方法.抽象工厂.其中抽象工厂是用于多个产品族的情况.所谓产品族就是不同产品组成的有机整体,各不同产品之间相互依赖.打个比方,一台电脑有CPU.主板.内存和硬盘等,这些不同产品组成了一个产品族.就好比Dell和HP要把这些产品进行不同的组装,这时就需要用到抽象工厂.以下是代码演示: 简单工厂,可以用反射实现: 首先定义产品的抽象接口 package com.demo.SimpleFactory; public interface CPU { public void r

设计模式-工厂模式[Factory]

先看下一个简单的实现: 1 package org.masque.designpatterns.factorymethod.one; 2 /** 3 * 4 * Description: Sample子类的标示 5 * BeanEm.java Create on 2014年7月11日 下午2:37:58 6 * @author [email protected] 7 * @version 1.0 8 * Copyright (c) 2014 Company,Inc. All Rights Res

工厂模式(Factory)和抽象工厂模式(Abstract Factory)

一.工厂模式(Factory):通过让子类决定该创建的对象是什么,来达到将对象创建的过程封装的目的,工厂方法让类的实例化推迟到子类 (1)涉及角色:抽象产品,具体产品,抽象创建者,具体创建者.                (2)实例:    抽象产品类 1 public abstract class ProductNoodle { 2 public abstract String description(); 3 } 具体产品类 1 public class ConcreteNoodleA e