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 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1700381743a422547.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论