1. 定义
定义一个用于创建对象的接口,让子类决定实例化哪一个类,FactoryMethod使一个类的实例化延迟到其子类。
2. 结构图
Product:定义工厂方法所创建的对象的接口,也就是实际需要使用的对象的接口。
ConcreteProduct:具体的Product接口的实现对象。
Creator:创建器,声明工厂方法,工厂方法通常会返回一个Product类型的实例对象,而且多是抽象方法。也可以在Creator里面提供工厂方法的默认实现,让工厂方法返回一个缺省的Product类型的实例对象。
ConcreteCreator:具体的创建器对象,覆盖实现Creator定义的工厂方法,返回具体的Product实例。
3. 本质
工厂方法模式的本质是:延迟到子类来选择实现。
4. Code Demo
Product.java
package org.fool.pattern.factorymethod; public interface Product { }
Creator.java
package org.fool.pattern.factorymethod; public interface Creator { public Product factory(); }
ConcreteProduct.java
package org.fool.pattern.factorymethod; public class ConcreteProduct implements Product { public ConcreteProduct() { System.out.println("ConcreteProduct Created"); } }
ConcreteCreator.java
package org.fool.pattern.factorymethod; public class ConcreteCreator implements Creator { @Override public Product factory() { return new ConcreteProduct(); } }
Client.java
package org.fool.pattern.factorymethod; public class Client { public static void main(String[] args) { Creator creator = new ConcreteCreator(); Product product = creator.factory(); } }
相关推荐
工厂方法模式是面向对象设计模式中的行为型模式之一,它提供了一种...在提供的文件列表中,“FactoryMethod”可能是包含这个简单示例代码的文件。如果有机会查看这个文件,将能更深入地理解工厂方法模式的实现细节。
《设计模式之——工厂方法(Factory Method)》 在软件工程中,设计模式是一种解决常见问题的可重用解决方案,它被广泛应用于构建高质量、可维护的代码。工厂方法是面向对象设计模式的一种,属于创建型模式。这个...
C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)
工厂方法模式与简单工厂模式相比,具有更好的可扩展性。在简单工厂模式中,工厂类通常是静态的,负责创建所有类型的对象,这导致在添加新产品时,需要修改工厂类。而在工厂方法模式中,每种产品都有专门的工厂类负责...
- **简单工厂模式**:工厂方法模式比简单工厂模式更具有扩展性和灵活性,简单工厂模式只有一个静态工厂方法,而工厂方法模式则允许有更多的具体工厂。 - **抽象工厂模式**:工厂方法模式关注单个产品族,而抽象工厂...
设计模式C++学习之工厂方法模式(Factory Method)
工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪一个具体类。这样,客户端代码就不需要知道具体的类是什么,只需通过工厂接口获取对象。 工厂...
工厂方法(Factory Method)是面向对象设计模式中的一个基础且广泛应用的模式,它属于创建型模式,主要目的是为了解耦对象的创建过程。本文将深入探讨工厂方法的设计理念、实现方式及其在实际开发中的应用。 ### ...
Factory Method 工厂方法模式(创建型模式).wmv
在软件设计模式中,工厂方法(Factory Method)和抽象工厂(Abstract Factory)是两种非常重要的创建型模式。它们主要用于解决对象实例化的问题,提供了一种封装对象创建过程的方法,使得代码更加灵活,易于扩展和...
5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER ...
### Factory Method 工厂方法模式(创建型模式) #### 概述 在软件工程领域,设计模式是一种在特定上下文中解决常见问题的通用方案。Factory Method(工厂方法)模式是GoF(Gang of Four)设计模式之一,属于创建型...
它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar
在给定的"FactoryMethod"文件中,我们可以预期包含以下内容: - 一个抽象工厂类,如`ProductFactory`,其中定义了一个或多个创建产品的方法,这些方法通常是抽象的或声明为返回类型为抽象产品的接口。 - 至少两个...
C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) (Level 300)
Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。
至于标签中的“FactoryMethod 将#”,可能是因为标签被不完整地输入了。通常,“#”用于标记话题或者关键词,这里可能是想表达“工厂方法模式”的话题。在Java中,工厂方法模式通常用于实现“开闭原则”,即软件实体...