`

设计模式之简单工厂模式

 
阅读更多



 1、定义

       简单工厂模式:一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。

      类图如下:

clip_image002

 

     

2、例子

     举个例子:用户提交了业务单据后,发送消息通知给相应处理人,消息通知方式有短信、邮件、push通知等。

     类图定义如下:

   

    (1)定义Sender接口
      

public interface Sender {
	public void send();
}

     (2)实现邮件发送类

public class MailSender implements Sender {
	@Override
	public void send() {
		System.out.println("发送邮件");
	}
}

      (3)实现短信发送类

   

public class SmsSender implements Sender {
	@Override
	public void send() {
		System.out.println("发送短信");
	}
}

    (4)实现PUSH发送类

public class PushSender implements Sender {
	@Override
	public void send() {
		System.out.println("发送Push");
	}
}

    (5)创建发送工厂类

public class SendFactory {
	public final static int MAIL = 1;
	public final static int SMS = 2;
	public final static int PUSH = 3;

	public Sender createSender(int sendType) {
		Sender sender = null;
		switch (sendType) {
		case SendFactory.MAIL:
			sender = new MailSender();
			break;
		case SendFactory.SMS:
			sender = new SmsSender();
			break;
		case SendFactory.PUSH:
			sender = new PushSender();
			break;
		default:
			sender = new MailSender();
			break;
		}
		
		return sender;
	}
}

    (6)我们做一个测试类

public class Test {
	public static void main(String[] args) {
		SendFactory  factory = new SendFactory();
		Sender sender = factory.createSender(SendFactory.PUSH);
		sender.send();
	}
}

 

 优势
  在简单工厂模式中,工厂类是整个模式的关键,其包含必要的判断逻辑,能够根据外界给定的信息,决定究竟创建哪个类的实例,外界可以不用去关注对象的创建,仅需要负责“消费”对象就可以了,明确区分了责任,有利于结构的优化。

劣势:

      简单工厂模式的缺点也体现在其工厂类上,该类集中了所有实例的创建逻辑,违反了高内聚的责任分配原则,当系统的具体产品类不断增多时,工厂类中条件判断过多,不利于扩展及维护,简单工厂模式的这些缺点,利用工厂方法模式可以得到一定的克服。

  • 大小: 4.6 KB
分享到:
评论

相关推荐

    设计模式之简单工厂模式案例

    简单工厂模式是软件设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个工厂类负责创建所有相关的对象,而客户端只需要知道具体的产品类型,无需了解如何创建这些对象的细节。这种...

    大话设计模式之简单工厂模式

    大话设计模式源代码之简单工厂模式 经典代码

    设计模式之简单工厂模式源码

    简单工厂模式是软件设计模式中的一种基础模式,它在创建对象时起到了抽象和封装的作用,使得客户端无需关心具体对象的创建过程,只需要通过一个公共的工厂接口就能获取所需的对象。这种模式尤其适用于当系统中存在...

    设计模式之简单工厂模式(附demo)

    简单工厂模式是软件设计模式中的一种基础模式,它属于创建型模式,主要解决对象的创建问题,降低了系统与具体创建对象之间的耦合度。在这个模式中,有一个工厂类负责创建对象,客户端通过调用工厂类的特定方法来获取...

    应用了设计模式之简单工厂模式的计算器

    完成了,但感觉这也没啥特别的,程序界面黑布隆冬的,内部结构也是最最平常的面向对象,于是我应用了《大话设计模式》这本书中的第一个模式——简单工厂模式,看上去还不错。界面的话,也就是输出的语句变了,system...

    Java设计模式04简单工厂模式.pdf

    ### Java设计模式之简单工厂模式详解 #### 一、创建型模式概览 在软件工程领域,设计模式是一种被广泛采用的解决方案模板,用于解决在软件设计过程中遇到的常见问题。其中,创建型模式(Creational Pattern)专注...

    深入了解c# 设计模式之简单工厂模式

    深入了解 C# 设计模式之简单工厂模式 简单工厂模式是 C# 设计模式中的一种,它主要用于解决对象创建的问题,提供了一种简单的方式来创建对象。这种模式属于 Creational Pattern,主要用于对象的创建。 在简单工厂...

    Python设计模式之简单工厂模式实例详解

    本文实例讲述了Python设计模式之简单工厂模式。分享给大家供大家参考,具体如下: 简单工厂模式(Simple Factory Pattern):是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类. 下面使用...

    工厂模式:简单工厂模式、工厂方法模式、抽象工厂模式

    工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...

    三种设计模式(简单工厂_工厂方法_抽象工厂)

    简单工厂模式是一种创建型设计模式,它提供了一个静态方法来创建对象,而无需暴露创建逻辑。这个静态方法根据输入参数来决定返回哪个类的实例。这种方式将对象的创建与使用分离,使得代码更加简洁,易于理解和使用。...

    简单工厂模式-工厂方法模式-抽象工厂模式

    在软件设计模式中,工厂模式是一组非常基础且实用的设计模式,主要分为简单工厂模式、工厂方法模式和抽象工厂模式。这些模式都是为了解决对象创建的问题,通过封装对象的创建过程,使得代码更加灵活,易于扩展和维护...

    python3设计模式之简单工厂模式

    **Python3设计模式之简单工厂模式** 简单工厂模式是一种创建型设计模式,它提供一个创建对象的接口,但允许子类决定实例化哪一个类。在Python3中,我们可以利用面向对象编程特性来实现这一模式。 在上述代码中,...

    c#设计模式之简单工厂

    简单工厂模式是一种创建型设计模式,它提供了一个创建对象的接口,但允许子类决定实例化哪一个类。这种模式使得客户端代码不必关心具体的产品实现,只需要知道如何通过工厂获取所需的对象即可。在C#中,简单工厂模式...

    设计模式(简单工厂模式_排序)手写代码.rar

    简单工厂模式是软件设计模式中的一种创建型模式,它提供了一种创建对象的最佳方式。在简单工厂模式中,一个工厂类负责创建所有相关的或者相互依赖的对象,无需客户端代码指定具体的类,而是通过工厂方法来创建实例。...

Global site tag (gtag.js) - Google Analytics