简单工厂模式
public interface ImpSender {
public void Send();
}
public class MailSender implements ImpSender{
@Override
public void Send(){
System.out.println("this is mailsender!");
}
}
public class SmsSender implements ImpSender{
@Override
public void Send(){
System.out.println("this is smssender");
}
}
public class SendFactory{
public ImpSender productMail(){
return new MailSender();
}
public ImpSender productSms(){
return new SmsSender();
}
}
public class FactoryTest{
public static void main(String[] args){
SendFactory factory = new SendFactory();
ImpSender sender = factory.productMail();
sender.Send();
}
}
抽象工厂模式
public interface Sender{
public void Send();
}
public interface Provider{
public Sender produce();
}
public class MailSender implements Sender{
@Override
public void Send(){
System.out.println("this is mailsender!");
}
}
public class SmsSender implements Sender{
@Override
public void Send(){
System.out.println("this is mailsender!");
}
}
public class SendMailFactory implements Provider{
@Override
public Sender produce(){
return new MailSender();
}
}
public class SendSmsFactory implements Provider{
@Override
public Sender produce(){
return new SmsSender();
}
}
public class Test{
public static void main(String[] args){
Provider provider = new SendMailFactory();
Sender sender = provider.produce();
sender.Send();
}
}
静态工厂模式
public interface Sender{
public void Send();
}
public class MailSender implements Sender{
@Override
public void Send(){
System.out.println("this is mailsender!");
}
}
public class SmsSender implements Sender{
@Override
public void Send(){
System.out.println("this is sms sender!");
}
}
public class SendFactory{
public static Sender produceMail(){
return new MailSender();
}
public static Sender produceSms(){
return new SmsSender();
}
}
public class FactoryTest{
public static void main(String[] args){
Sender sender = SendFactory.produceMail();
sender.Send();
}
}