工厂方法顾名思义,即是创建实例的方法。简单工厂方法又称为静态工厂,因为创建实例的逻辑都封装在工厂方法内部,往往这个方法是静态的,方便Client端调用 。
代码如下:
商品的抽象接口,内部有个生产商品的方法Produce
public interface Product { void produce(); }
具体的商品A and B, 都实现同一抽象接口Product
public class ProductA implements Product { @Override public void produce() { System.out.println("Produce Product A"); } } public class ProductB implements Product { @Override public void produce() { System.out.println("Produce Product B"); } }
静态工厂方法
public class SimpleFactory { public static Product getProduct(String flag) { Product product = null; if ("A".equals(flag)) { product = new ProductA(); } else if ("B".equals(flag)) { product = new ProductB(); } else { System.out.println("Not exist such Product"); } return product; } }
客户端调用
public class Client { /** * @param args */ public static void main(String[] args) { Product product = SimpleFactory.getProduct("A"); product.produce(); } }
上面的代码基本就是一个简单工厂模式的实现,容易看出创建对象的逻辑都在工厂类的静态方法中,所以这个工厂就承担了很重要的一个责任。
如果这个时候业务有所变更,新增ProductC和ProductD两个商品,我们只要新建两个对应的类来实现Product这个接口并实现Produce方法。但是这里就要涉及到静态工厂方法的逻辑修改,增加if else的判断。这样就违背了开闭原则,即对扩展开放,对修改关闭。
相关推荐
工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...
在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...
本篇文章将对三种主要的工厂模式:简单工厂、工厂方法和抽象工厂进行深入的对比和总结。 **简单工厂模式** 是最基础的工厂模式形式,它提供一个静态方法或类来创建对象。在这个模式中,工厂是负责创建对象的中心...
案例一:简单工厂方法模式 这个案例可能涉及到一个`IProduct`接口,定义了产品的基本行为,比如`Execute()`方法。然后有两个具体的产品类,例如`ProductA`和`ProductB`,它们实现了`IProduct`接口。接下来,我们会有...
工厂方法、简单工厂和抽象工厂是创建型设计模式的三种不同形式,它们都关注于对象的创建过程,但各有其特点和适用场景。 1. **工厂方法(Factory Method)**: 工厂方法模式定义了一个创建对象的接口,但让子类...
在软件设计模式中,"抽象工厂"、"工厂方法"和"简单工厂"都是创建型设计模式,它们都用于封装对象的创建过程,提供了一种间接的途径来创建对象,从而使得代码更加灵活,易于扩展。下面将详细介绍这三个工厂模式。 ##...
《工厂方法模式在简易计算器重构中的应用》 在软件工程中,设计模式是解决常见问题的模板,它们为程序员提供了一种标准化的解决方案。工厂方法模式(Factory Method Pattern)是面向对象设计模式的一种,它在实际...
本文将深入探讨两种常见的工厂模式:简单工厂模式和工厂方法模式。 简单工厂模式,也称为静态工厂模式,是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露实例化逻辑。在简单工厂模式中,一个单一...
本文将深入探讨三种工厂模式:简单工厂模式、工厂方法模式以及抽象工厂模式,并结合源码分析其应用场景和优缺点。 1. 简单工厂模式 简单工厂模式(Simple Factory Pattern)是一种静态工厂方法,它通过一个公共的...
学生课程设计的C++,Qt,设计模式,使用到简单工厂方法,对于登录系统,分角色的登录对于锻炼编程能力很有帮助,学生课程设计的C++,Qt,设计模式,使用到简单工厂方法,对于登录系统
学生课程设计的C++,Qt,设计模式,使用到简单工厂方法,对于登录系统,分角色的登录对于锻炼编程能力很有帮助,学生课程设计的C++,Qt,设计模式,使用到简单工厂方法,对于登录系统,分角色的登录对于锻炼编程能力很有...
工厂模式分为三种主要类型:简单工厂模式、普通工厂模式(也称为工厂方法模式)和抽象工厂模式。 1. **简单工厂模式**: - 简单工厂模式中,有一个中心工厂类,它负责根据输入条件(通常是一个参数)来创建具体的...
学生课程设计的C++,Qt,设计模式,使用到简单工厂方法,对于登录系统,分角色的登录对于锻炼编程能力很有帮助,学生课程设计的C++,Qt,设计模式,使用到简单工厂方法,对于登录系统,分角色的登录对于锻炼编程能力很有...
同时,工厂方法模式也可以避免简单工厂模式的缺点,即当有新产品要加入到系统中时,必须对工厂类进行修改,以加入必要的处理逻辑。 工厂方法模式适合在如下场合中运用: * 当无法得知必须创建的对象属于哪个类的...
工厂方法模式是设计模式中的创建型模式,它提供了一种创建对象的最佳方式。在这个模式中,一个类(称为工厂类)不再直接实例化具体的产品,而是定义一个接口或抽象类,由子类来决定实例化哪一个类。这样做的好处在于...
在这个例子中,我们讨论的是如何使用工厂方法模式(Factory Method Pattern)实现一个简易计算器。工厂方法模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在工厂方法模式中,一个工厂接口或者抽象类...
在Java等面向对象编程语言中,我们可以利用抽象类和抽象方法来实现简单工厂模式。 首先,我们需要理解什么是抽象方法。在面向对象编程中,抽象方法是一种没有具体实现的方法,它只有声明,没有具体的操作。这样的...
3. 简单工厂类(SimpleFactory):包含创建产品的方法,根据输入条件返回具体产品实例。 4. 抽象工厂接口(AbstractFactory):定义创建产品族的接口。 5. 具体工厂类(ConcreteFactory1, ConcreteFactory2等):...
1. **简单工厂方法**:工厂类通常包含一个静态工厂方法,如`Calculator createCalculator(String type)`,该方法根据传入的类型参数(如"加法"、"减法"等)返回相应的计算器对象。这样,客户端只需传入所需的运算...