java 简单工厂模式实现

简单工厂模式:也可以叫做静态工厂方法,属于类创建型模式,根据不同的参数,返回不同的类实现。

主要包含了三个角色:

A.抽象产品角色 一般用接口 或是 抽象类实现

B.具体的产品角色,具体的类的实现

C 工厂角色,实例的产生,根据不同参数,返回不同的类的实现。

结合枚举类的实现代码如下:

1、抽象的产品角色:

package factory.simple;

/**
 * 抽象产品角色 交通工具接口
 *
 * @author lilin
 *
 */
public interface Car {

    /**
     * 上班函数
     */
    void gotowork();

}

2、具体的产品角色 总共实现了两个具体产品类,代码如下:

package factory.simple;

/**
 * 具体产品角色,自行车
 *
 * @author lilin
 *
 */
public class Bike implements Car {
    @Override
    public void gotowork() {
        System.out.println("骑自行车去上班!");
    }

}
package factory.simple;

/**
 * @author lilin
 *
 */
public class Bus implements Car {

    @Override
    public void gotowork() {
        System.out.println("坐公交车去上班!");
    }

}

3.工厂角色,实际实例的产生者:结合了枚举类型的实现,方便返回不同的实例判断

/**
 *
 */
package factory.simple;

/**
 * @author lilin
 *
 */
public class SimpleFactory {

    public enum CarTypr {
        BIKE, BUS;
    }

    /**
     * 获取car的实例返回
     *
     * @param car
     * @return
     */
    public static Car getCar(CarTypr car) {
        Car simpleCar = null;
        switch (car) {

        case BIKE:
            simpleCar = new Bike();
            break;
        case BUS:
            simpleCar = new Bus();
            break;
        default:
            simpleCar = new Bike();
        }
        return simpleCar;
    }
}

最后,采用testNG,实现简单的测试:

/**
 *
 */
package factory.simple;

import org.testng.annotations.Test;

import factory.simple.SimpleFactory.CarTypr;

/**
 * @author lilin
 *
 */
public class TestSimpleFactory {

    @Test
    public void test1() {
        Car car = SimpleFactory.getCar(CarTypr.BIKE);
        System.out.println("上班方式:");
        car.gotowork();

        Car car2 = SimpleFactory.getCar(CarTypr.BUS);
        System.out.println("上班方式:");
        car2.gotowork();
    }
}

很容易就能得到测试结果,得知,一个简单工厂模式的实现,到此over。测试结果如下:

上班方式:
骑自行车去上班!
上班方式:
坐公交车去上班!
PASSED: test1

时间: 2024-12-23 08:05:57

java 简单工厂模式实现的相关文章

!!转!!java 简单工厂模式

举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象的人是最早只存在于女娲的头

java 简单工厂模式 转载

简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式.简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例. 那么简单工厂模式是在什么场景下使用呢,下面就以本人的理解举例说明: 就拿登录功能来说,假如应用系统需要支持多种登录方式如:口令认证.域认证(口令认证通常是去数据库中验证用户,而域认证则是需要到微软的域中验证用户).那么自然的做法就是建立一个各种登录方式都适用的接口,如下图所示: public interface Login { //登录验证

java 简单工厂模式、多态工厂、抽像工厂 讲解, 代码示例

package org.rui.pattern2; import java.util.*; import junit.framework.*; /** * (实现 factory 模式)常用的方法是把 factory 声明为基类的静态方法(static method) * * @author Administrator * */ abstract class Shape { public abstract void draw(); public abstract void erase(); pu

(转) java 简单工厂模式(实现一个计算器)

package com.simpleFactory; /** * 运算类 * @author Administrator * */ public class Operation { private double numberA; private double numberB; public double getResultValue(){ return 0.0; } public double getNumberA() { return numberA; } public void setNum

Java 简单工厂模式

一.概述 1.目标:要控制任意类型交通工具的生产模式 2.目标有两层意思(1)任意类型 (2)生产模式,所以对应的,要这两个层面上抽象(Movable,VehicleFactory),利用接口,实现多态 二.类结构 1.Interface Movable.java 2.Car.java 3.Plane.java 4.Interface VehicleFactory.java 5.CarFactory.java 6.PlaneFactory.java 三.代码 1.Movable.java pub

java简单工厂模式

interface Fruit(){ public void eat(): } class Apple implements Fruit(){ public void eat(){ System.out.println("吃苹果"); } class Orange implements Fruit(){ public void eat(){ System.out.println("吃橘子"); } class Factory(){ public static Fru

Java中的简单工厂模式

举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象的人是最早只存在于女娲的头

Java中的简单工厂模式(转)

Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人话说:“天地开辟,未有人民,女娲抟土为人.”女娲需要用土造出一个个的人,但在女娲造出人之前,人的概念只存在于女娲的思想里面.女娲造人,这就是简单工厂模式的应用. 首先,在这个造人的思想里面,有几个重要的角色:女娲本身.抽象的人的概念和女娲所造出的一个个具体的人. 1.)女娲是一个工厂类,也就是简单工厂模式的核心角色. 2.)具休的一个个的人,包括张三,李四等.这些人便是简单工厂模式里面的具体产品角色 3.)抽象

JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)

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