`

java设计模式--[创建模式]--简单工厂[simple factory]

阅读更多

一. 簡單工廠
    其實它不是一個設計模式,反而比較像是一種編程習慣,由于經常被使用,有些人把這個習慣誤認為是"工廠模式",在談論工廠模式前,先將簡單工廠熟悉一下;

 

二. 簡單工廠的UML類圖如下:



 

三.在此用一個事例說明簡單工廠的用法: 在一個酒店里可以做出多種名菜.完整示例代碼如下:

 

 1. 菜肴的加工過程

package creationalPattern.factory.simple;
/**
 * 名菜加工過程
 * @author Liyongbin
 * @date 2011-02-06
 */
public interface ICuisine {
	//原料採購
	public String purchase();
	//烹調加工
	public String processing();
	//成品銷售
	public String vendition();
}

 2. 川菜的做法

package creationalPattern.factory.simple;
/**
 * 川菜類
 * @author Liyongbin
 * @date 2011-02-06
 */
public class SichuanCuisine implements ICuisine{
	@Override
	public String purchase() {
		return "川菜原料採購";
	}
	
	@Override
	public String processing() {
		return "川菜烹調加工";
	}

	@Override
	public String vendition() {
		return "川菜成品銷售";
	}
}

    湘菜的做法:

package creationalPattern.factory.simple;
/**
 * 湘菜類
 * @author Liyongbin
 * @date 2011-02-06
 */
public class HunanCuisine implements ICuisine{

	@Override
	public String purchase() {
		return "湘菜原料採購";
	}
	
	@Override
	public String processing() {
		return "湘菜烹調加工";
	}

	@Override
	public String vendition() {
		return "湘菜成品銷售";
	}
}

   粵菜的做法:

package creationalPattern.factory.simple;
/**
 * 粵菜類
 * @author Liyongbin
 * @date 2011-02-06
 */
public class ContoneseCuisine implements ICuisine{

	@Override
	public String purchase() {
		return "粵菜原料採購";
	}

	@Override
	public String processing() {
		return "粵菜烹調加工";
	}

	@Override
	public String vendition() {
		return "粵菜成品銷售";
	}
}

 3.菜肴烹調工廠[簡單工廠]

package creationalPattern.factory.simple;

/**
 * 菜肴烹調工廠
 * @author Liyongbin
 * @date 2011-02-06
 */
public class CuisineFactory {
	//制作菜肴的方法
	public ICuisine cooking(String type){
		ICuisine cuisine=null;
		if (type.equalsIgnoreCase("Hunan")) {//湘菜
			cuisine=new HunanCuisine();
		} else if(type.equalsIgnoreCase("Sichuan")){//川菜
			cuisine=new SichuanCuisine();
		} else if(type.equalsIgnoreCase("Guangdong")){//粵菜
			cuisine=new ContoneseCuisine();	
		}
		return cuisine;
	}
}

 4. 酒店

package creationalPattern.factory.simple;

/**
 * 香格裡拉酒店
 * @author Administrator
 *
 */
public class ShangriLaHotel {
	CuisineFactory cf= new CuisineFactory();
	/**
	 * 訂單方法
	 * @param localCuisine預訂的地方菜
	 */
	public void order(String localCuisine){
		ICuisine cuisine=cf.cooking(localCuisine);
	        System.out.print(cuisine.purchase()+"|");
		System.out.print(cuisine.processing()+"|");
		System.out.println(cuisine.vendition());
	}
}

 5. 簡單工廠的測試

package creationalPattern.factory.simple;

public class SimpleFactoryTest {

	/**
	 *  簡單工廠測試方法
	 * @param args
	 */
	public static void main(String[] args) {
		ShangriLaHotel slh = new ShangriLaHotel();
		slh.order("Sichuan");
		slh.order("Hunan");
		slh.order("Guangdong");
	}
}

 6. 運行結果如下:

   

 

  • 大小: 5.2 KB
  • 大小: 4.1 KB
分享到:
评论

相关推荐

    JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)

    JAVA设计模式(01):创建型-工厂模式【简单工厂模式】(Simple Factory)

    java 设计模式 Facade外观模式 Simple Factory 简单工厂模式

    java 设计模式 Facade外观模式 Simple Factory 简单工厂模式,代码有点罗嗦,不过可移植性很强

    Java设计模式之工厂模式(Factory)

    1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一...

    Java设计模式简单工厂模式

    Java设计模式之一简单工厂模式(SimpleFactory)源码

    JAVA工厂模式

    1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。 GOF在《设计模式》一书中将工厂模式分为两类:...

    design-pattern-java.pdf

    六个创建型模式 六个创建型模式 简单工厂模式-Simple Factory Pattern 工厂三兄弟之简单工厂模式(一) 工厂三兄弟之简单工厂模式(二) 工厂三兄弟之简单工厂模式(三) 工厂三兄弟之简单工厂模式(四) 工厂方法...

    简单工厂模式

    java设计模式 简单工厂模式详解 simple factory static pattern

    设计模式 t01SimpleFactory

    设计模式 t01SimpleFactory

    23种java版设计模式源码案例.zip

    简单工厂(simplefactory) 动态工厂(dynamic) 抽象工厂(abstract) 单例模式(singleton) 建造者模式(builder) 原型模式(prototype) 结构型模式(structure) 适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite)...

    java设计模式CatalogDAOFactory是典型的工厂方法

    工厂模式定义:提供创建对象的接口. 为何使用? 工厂模式是我们最常用的模式了,著名的Jive论坛 ,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见。 为什么工厂模式是如此常用?因为工厂模式就相当于...

    simplefactory.zip

    设计模式-简单工厂 demo

    Java中的design-patterns::open_book:使用通俗易懂的案例,类图,以及配套学习笔记来详解Java的二十种设计模式!

    :check_mark:简单工厂模式( Simple Factor Pattern ) :memo: , :check_mark:工厂方法模式( Factory Method Pattern ) :memo: , :check_mark:抽象工厂模式( Abstract Factroy Pattern ) :memo: , :check_...

    java工厂模式

    包括:ccFactoryMethod工厂方法-模式进阶.pdf 、 ccFactory简单工厂-设计模式的入门级模式.pdf 、chp12简单工厂(Simple Factory)模式.pdf、JAVA简单工厂创立性模式介绍.pdf四部分。

    uu-design-pattern:23种设计模式案例

    23种设计模式演示代码文件结构图gof23 |- creational(创建型模式) |- simplefactory 简单工厂模式案例 |- factorymethod 工厂方法模式案例 |- abstractfactory 抽象工厂模式案例 |- builder 建造者模式案例 |- ...

    Simple Factory模式.doc

    这主要很快地让你了解工厂设计模式,java里面Factory模式的设计过程

    超市管理系统java源码swing-king-design:23种java设计模式

    简单工厂(simplefactory) 动态工厂(dynamic) 抽象工厂(abstract) 单例模式(singleton) 建造者模式(builder) 原型模式(prototype) 结构型模式(structure) 适配器模式(adaptor) 桥接模式(bridge) 组合模式(composite) ...

    word源码java-java-knowledge-collection:Java核心知识点梳理

    简单工厂模式(Simple Factory) 工厂方法模式(Factory Method) 抽象工厂模式(Abstract Factory) 建造者模式(Builder) 原型模式(Prototype) 结构型 适配器模式(Adapter) 桥接模式(Bridge) 组合模式...

    java 设计模式

    java 设计模式 bridge CommandPattern factoryMethod simpleFactory

    Java与模式

    实用的 java 设计原则 和 设计模式,阅读完本书,可以了解java的api背后的设计思想和理念。1000多页巨著,只有超值,没有之一。 第1章 模式的简史和形而上学 第2章 统一建模语言UML简介 第12章 简单工厂\(Simple ...

    深入浅出设计模式(中文版)

    工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体... 工厂模式在《Java 与模式》中分为三类: 1)简单工厂模式(Simple Factory) 2)工厂方法模式(Factory Method) 3)抽象工厂模式(Abstract Factory

Global site tag (gtag.js) - Google Analytics