一. 簡單工廠
其實它不是一個設計模式,反而比較像是一種編程習慣,由于經常被使用,有些人把這個習慣誤認為是"工廠模式",在談論工廠模式前,先將簡單工廠熟悉一下;
二. 簡單工廠的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. 運行結果如下:
相关推荐
简单工厂模式是面向对象设计中的一种经典设计模式,它属于创建型模式,主要用来解决对象的创建问题。在Java编程中,简单工厂模式通过一个中心工厂类来负责创建相关的对象,而无需让客户端代码直接new具体的产品类。...
**Java设计模式——简单工厂** 简单工厂模式是软件设计模式中的一种基础模式,它属于创建型设计模式。在Java编程中,我们常常会遇到需要创建一系列相关或相互依赖的对象,而这些对象的创建过程可能会非常复杂。这时...
**简单工厂模式**是软件设计模式中的一种,属于创建型模式。在Java编程中,它是一种用于创建对象的简便方法,将对象的实例化过程封装到一个单独的工厂类中,使得客户端代码无需直接调用具体类的构造函数,而是通过...
总的来说,Facade模式和Simple Factory模式是Java设计模式中的重要组成部分,它们分别解决了简化复杂系统接口和对象创建的问题。学习和运用这些模式,不仅可以提高代码质量,还能使软件更加灵活,适应未来可能的变化...
在给出的压缩包文件`SimpleFactory`中,可能包含了实现简单工厂模式的相关代码,包括产品接口、具体产品类和工厂类的Java源文件。通过查看和学习这些代码,我们可以更深入地理解简单工厂模式的工作原理以及如何在...
简单工厂模式是一种实用的设计模式,它通过将对象的创建过程封装在工厂类中,使得客户端无需关心具体的创建细节。这种方法不仅提高了代码的灵活性和可扩展性,也使得代码更加易于维护。通过本文的介绍,相信读者已经...
工厂模式是设计模式中的一种,尤其在Java中应用广泛。本文将深入探讨Java中的工厂模式,以及如何通过实例来理解它的应用。 工厂模式属于创建型设计模式,它的主要目标是提供一个接口,用于创建相关或依赖对象的家族...
2. **工厂方法模式**(Factory Method Pattern):相比简单工厂模式,工厂方法模式将对象的创建委托给子类,使得核心工厂类更加抽象,不涉及具体产品的创建。这提高了系统的扩展性。例如: ```java public abstract...
总的来说,Java工厂模式SimpleFactory是一种实用的设计模式,能够帮助我们更好地管理对象的创建过程,提高代码的可维护性和可扩展性。通过将对象的创建过程封装在工厂类中,我们可以在不修改客户端代码的情况下,...
简单工厂模式是面向对象设计模式中的一种,它属于创建型模式,主要解决的是在系统中如何创建对象的问题。设计模式是软件开发中的经验总结,旨在提高代码的可重用性、可读性和可维护性。 在简单工厂模式中,一个工厂...
简单工厂模式(Simple Factory Pattern)是一种常用的创建型设计模式。它提供了一种方式来封装对象的创建过程,使得整个系统更加灵活,易于扩展。在简单工厂模式中,存在一个专门用于创建对象的工厂类,它负责根据...
简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,使得代码在创建对象时更加灵活,同时也隐藏了对象的创建细节,提高了代码的可读性和可维护性。在Java编程中,简单工厂模式...
在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个工厂类来负责对象的创建。这样可以使得系统更具可扩展性和可维护性。...
1. **简单工厂模式**:简单工厂模式由一个工厂对象决定创建出哪一种产品类的实例。这种模式提供了一个简单的创建对象的方式。 2. **工厂方法模式**:工厂方法模式提供了一个创建对象的接口,但允许子类决定实例化哪...
- **简单工厂模式**(Simple Factory Pattern): 用于创建对象的实例,无需暴露创建逻辑给客户端,而是将创建的责任交给专门的工厂类。 - **建造者模式**(Builder Pattern): 用于构建复杂对象,允许用户逐步构建一...
### Java设计模式之工厂模式详解 #### 一、引言 设计模式是在软件设计过程中针对常见问题而提出的标准化解决方案。其中,“工厂模式”是面向对象编程中最常用的模式之一,主要目的是封装实例化过程,使代码更加...
Java中的`AbstractFactory`、`SimpleFactory`和`FactoryMethod`都是工厂模式的不同变体,它们用于解耦对象的创建和使用。 3. **抽象工厂模式**:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的具体...
Java工厂模式是面向对象设计模式中的一个重要概念,它提供了一种创建对象的最佳方式。在工厂模式中,我们创建对象时不直接实例化具体类,而是通过一个接口或者抽象类来间接创建。这种模式的核心在于将对象的创建过程...