1、工厂方法模式(Factory Method)
工厂方法模式分为三种:
1.1、普通工厂模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。
举例如下:(我们举一个推送信息的例子)
创建推送接口
public interface InfoSender {
//创建推送接口
public void send();
}
创建各种推送实现类:
=======邮箱推送
public class MailSend implements InfoSender {
// 邮箱推送
@Override
public void send() {
System.out.println("mail send");
}
}
====短信推送
public class SMSSend implements InfoSender {
// 短信推送
@Override
public void send() {
System.out.println("sms send");
}
}
===终端推送或是客户端推送
public class PushInfo implements InfoSender {
//终端推送
@Override
public void send() {
System.out.println("推送信息");
}
}
建信息推送工厂类
public class PushInfoFactory {
public InfoSender productPushInfo(String type) {
//根据不同类型生产不同信息推送方式
if("mail".equals(type))
{
return new MailSend();
}
else if("push".equals(type))
{
return new PushInfo();
}
else if("sms".equals(type))
{
return new SMSSend();
}
else
return null;
}
}
测试一下吧
public class FactoryTest {
public static void main(String[] args) {
// 创建工程
PushInfoFactory factory = new PushInfoFactory();
// 生产消息推送方法
InfoSender push = factory.productPushInfo("push");
// 推送
push.send();
}
}
1.2、多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象
在PushInfoFactory 类中增加如下方法:
// 创建mail类型的信息推送方式
public InfoSender productMail() {
return new MailSend();
}
// 创建SMS类型的信息推送方式
public InfoSender productSMS() {
return new SMSSend();
}
// 创建Push类型的信息推送方式
public InfoSender ProductPush() {
return new PushInfo();
}
在FactoryTest 类中增加如下代码进行测试
// 创建mail工厂方法
InfoSender push2 = factory.productMail();
// 推送
push2.send();
1.3静态工厂方法模式,将多个工厂方法里的方法置为静态的,不需要创建实例,直接调用即可。
// 创建mail类型的信息推送方式
public static InfoSender productMail() {
return new MailSend();
}
// 创建SMS类型的信息推送方式
public static InfoSender productSMS() {
return new SMSSend();
}
// 创建Push类型的信息推送方式
public static InfoSender ProductPush() {
return new PushInfo();
}
在以上的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种——静态工厂方法模式。
分享到:
相关推荐
尤其在Java编程语言中,设计模式被广泛应用。 标题《从追MM谈Java的23种设计模式》独特地将Java设计模式与“追女孩”的生活场景相结合,通过一系列生动的例子来解释各种设计模式的概念和使用场景。在IT行业中,这种...
### Java23种设计模式详解 #### 设计模式概述 设计模式是在软件设计过程中针对常见问题的解决方案。这些模式能够帮助开发人员编写出更高效、更可维护的代码。Java中的23种设计模式通常被划分为三类:创建型模式、...
在软件设计模式中,工厂模式是一种非常常用的行为型模式,它的主要目的是为了隔离对象的创建过程,使得客户端代码不直接创建对象,而是通过一个工厂类来负责对象的创建。这样可以使得系统更具可扩展性和可维护性。...
工厂模式是一种常用的软件设计模式,它的核心思想在于将实例化的责任交给一个专门的类——工厂类。这样做的好处是用户无需了解创建对象的具体过程,只需要知道如何获取对象。比如,当您带女朋友出去吃饭时,无论是在...
文档"java23种设计模式与追MM.doc"以生动有趣的比喻解释了这些模式,帮助初学者更好地理解和记忆。 1. **工厂模式**:就像在麦当劳或肯德基点餐,你只需要告诉服务员“四个鸡翅”,而不用关心鸡翅是如何制作的。...
在Java编程领域,设计模式是解决常见问题的模板,它们为软件开发提供了可重用的解决方案。本项目是一个基于Java实现的设计模式小程序,其主要目标是模拟一个Web系统,根据不同用户的需求提供定制化功能。通过运用...
23种设计模式汇集 如果你还不了解设计模式是什么的话? 那就先看设计模式引言 ! 学习 GoF 设计模式的重要性 建筑和软件中模式之异同 A. 创建模式 设计模式之 Singleton(单态/单件) 阎宏博士讲解:单例...
### Java设计模式之现实实例讲解 #### 一、概述 设计模式是在软件开发过程中,针对常见问题而总结出的一系列经过验证的解决方案。通过学习设计模式,开发者可以更好地理解和解决实际编程中的各种挑战,提高代码的...
设计模式是软件开发中的一种最佳实践,它们是解决常见问题的经验总结,被广泛应用于各种编程语言中。工厂模式是设计模式中的一个基础且重要的部分,它属于创建型设计模式,主要用于封装对象的创建过程,使得客户端...
本文将深入探讨其中的一种常见设计模式——工厂模式,并结合其他相关的设计模式,探讨它们在实际开发中的应用。 **工厂模式** 工厂模式是一种创建型设计模式,它的主要目的是提供一个创建对象的接口,隔离了实例化...
Java设计模式是软件开发中的一种最佳实践,它们是解决常见问题的经验总结,旨在提高代码的可重用性、可读性和可维护性。在Java中,设计模式主要分为三类:创建模式、结构模式和行为模式。 1. **创建模式**: - **...
理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,Proxy是代理的...
标题《Java Web程序设计教程》与描述《Java Web程序设计教程 Java Web程序设计教程》中的知识点主要涵盖了Java Web应用开发领域的核心技术与实践。本书作为21世纪高等学校计算机规划教材,由范立锋与林果园共同编著...
Java设计模式是面向对象编程中的重要概念,它们是解决常见软件设计问题的模板,通过将通用解决方案模式化,使得开发者可以快速有效地应对各种场景。以下是对标题和描述中提到的几种设计模式的详细解释: 1. **工厂...
设计模式是软件工程中的一种最佳实践,它是在特定上下文中解决常见问题的模板或蓝图。在Java编程中,设计模式的应用极大地提高了代码的可维护性、可扩展性和可重用性。本文将深入探讨设计模式的基本概念,并结合用户...
本知识点将详细介绍设计模式的分类、设计模式的六大原则,以及Java中23种设计模式的具体应用。 一、设计模式的分类 设计模式主要分为三大类,分别是创建型模式、结构型模式和行为型模式。此外,还有并发型模式和...
《J2EE设计模式》是软件开发中针对Java企业级应用的一种重要理论,它基于面向对象编程,旨在提高系统的可扩展性和稳定性。设计模式并非孤立存在,而是与架构设计、框架紧密相连,构成了J2EE多层系统的基石。衡量一个...
在软件开发领域,设计模式是解决常见问题的模板,它为特定情境下的编程提供了一种标准的方法。"设计模式之从简单工厂到泛型简单工厂"这个主题关注的是创建型设计模式,特别是如何逐步改进简单工厂模式以提高其灵活性...
7. **设计模式**:学习和应用常见的23种设计模式,如工厂模式、单例模式、装饰器模式和观察者模式,能提高代码的可读性和可维护性。 8. **JVM内部机制**:理解JVM的工作原理,如类加载、内存模型、垃圾回收和优化...