admin 管理员组

文章数量: 1086019

工厂设计 java,Java

Java工厂设计模式

一、关于工厂设计模式

介绍:设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,

并且是通过使用一个共同的接口来指向新创建的对象。

意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

主要解决:主要解决接口选择的问题。

何时使用:我们明确地计划不同条件下创建不同实例时。

如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。

分类:普通简单工厂、多个方法的简单工厂、多个静态方法的简单工厂、工厂设计模式。

二、代码实现

简单工厂:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。首先看下关系图

举例如下:(我们举一个发送邮件和短信的例子)

首先,创建二者的共同接口:

Sender

package pers.hupo.hupow.factory;

/**

* @author hupo

* 创建一个接口

* */

public interface Sender {

void Send();

}

View Code

其次,创建实现类:

MailSender

package pers.hupo.hupow.factory;

/**

* @author hupo

* Sender实现类

* */

public class MailSender implements Sender {

@Override

public void Send() {

System.out.println("this mail message");

}

}

View Code

SmsSender

package pers.hupo.hupow.factory;

/**

* @author hupo

* Sender实现类

* */

public class SmsSender implements Sender {

@Override

public void Send() {

System.out.println("this sms message");

}

}

View Code

最后,建工厂类:

package pers.hupo.hupow.factory;

/**

* @author hupo

* 工厂类

* */

public class SendFactory {

public Sender produce(String type) {

if ("mail".equals(type)) {

return new MailSender();

}

if ("sms".equals(type)) {

return new SmsSender();

}

return null;

}

}

View Code

测试方法

package pers.hupo.hupow.factory;

public class FactoryTest {

public static void main(String[] args) {

SendFactory sendFactory = new SendFactory();

Sender sender = sendFactory.produce("sms");

sender.Send();

}

}

View Code

输出结果:

标签:Java,Sender,hupo,工厂,接口,设计模式,public

来源: .html

本文标签: 工厂设计 java java