1. 工厂模式:
普通工程模式,就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。
例子如(发送邮件和短信的例子):
首先分析,先创建接口,两者都需要一个共同的接口发送接口:
//
//
public interface Sender{
public void Send();
}
创建实现类:
邮件发送类:
public class MailSender implements Sender{
@Override
public void Send(){
System.out.prinltn("this is mailsendar!");
}
}
短信发送类:
//
//
public class SmsSender implements Sender{
@Override
public void Send(){
System.out.println("This is sms Sender!");
}
}
最后,就是重要的工厂类了,其写法如下:
public class SendFactory{
public Sender produce(String type){
if("mail".equals(type)){
return new MailSender();
}else if("sms".equals(type)){
return new SmsSender();
}else{
System.out.println("请输入正确的类型!");
return;
}
}
}
测试类
//
//
public class FactoryTest{
public static void main(String[] args){
SendFactory factory = new SendFactory();
Sender sender=factory.produce("sms");
sender.Send();
}
}
多个工厂模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确的创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象。
上面的方法虽说是一种工厂模式,但是有很大的缺陷,比如说,传递的字符串是错误的,我们就没有办法,创建实例了,可以做如下的改动:
public class SendFactory{
public Sender produceMail(){
return new MailSender();
}
public Sender produceSms(){
return new SmsSender();
}
}
测试类的写法如下:
//
//
public class FactoryTest{
public static void mian(Stirng[] args){
SendFactory factory=new SendFactory();
Sender sender=factory.produceMail();
sender.Send();
}
}
3.静态工厂模式,静态工厂模式的方法,与多个工厂模式的方法类似,但是肯定有不一样的地方。
public class SendFactory{
public static Sender produceMail(){
return new MailSender();
}
public static Sender produceSms(){
return new SmsSender();
}
}
测试类的写法如下:
public calss FactoryTest{
public static void mian(String[] ar