工厂方法模式是将工厂类放到一个方法中进行创建,这样既可以实现工厂类的创建,又可以不修改工厂类的代码,从而对功能进行扩展,这样设计的另一个好处是:对代码实现了很好的封装。
例:
创建一个工厂接口
public interface Sender{
public void send();
}
两个工厂实现类
public class MailSender implements Sender{
@Override
public void send(){
System.out.println("This is MainSender!");
}
}
public class SmsSender implements Sender{
@Override
public void send(){
System.out.println("This is SmsSender!");
}
}
用来创建工厂类的类的接口
public interface Provider{
public Sender produce();
}
创建两个实现类
public class MailClass implements Provider{
@Override
public Sender produce(){
return new MailSender();
}
}
public class SmsClass implements Provider{
@Override
public Sender produce(){
return new SmsSender();
}
}
测试类
public class SenderTest{
public static void main(){
Provider provider = new SmsClass();
Sender smsSender = provider.produce();
smsSender.send();
}
}