接下来我们来介绍一下工厂设计模式,所谓工厂设计模式,即建立一个工厂来建立对象
先来看一下工厂设计模式的集中不同的建立模式
先做些准备工作
Interface Send(){
public void Send();
}
public class EmailSend(){
public void Send(){
System.out.println("Email Send");
}
}
public class JmsSend(){
public void Send(){
System.out.println("Jms Send");
}
}
第一种工厂模式
class Factory1 (){
public Send produce(String str){
if("mail".equals(str))
return new EmailSend();
else if("jms".equals(str))
return new EmailSend();
else
return null;
</pre></p><p><span style="white-space:pre"> </span>}</p><p>}</p><p>多个方法工厂模式</p><p>class Factory2(){</p><p><span style="white-space:pre"> </span>public EmailSend getInstance(){</p><p><span style="white-space:pre"> </span>return new EmailSend();<pre name="code" class="java">
}
public JmsSend getInstance2(){
return new JmsSend();
}
}
静态工厂模式
class Factory3(){
public static EmailSend getInstance(){
return new EmailSend();
}
public static JmsSend(){
return new JmsSend();
}
}
当接口的子类增加时,需要修改工厂类,违背了闭包原则
抽象工厂模式
为所有的工厂类定义一个接口
interface gongchan(){
public Send produce():
}
class Factory4 implements gongchan{
public Send produce(){
return new EmailSend();
}
}
class Factory5 implements gongchan{
public Send produce(){
return new JmsSend();
}
}