简单工厂一般分为:
1.普通简单工厂
2.多方法简单工厂
3.静态方法简单工厂
一、普通简单工厂
概念:就是建立一个工厂类,对实现了统一接口的一些类进行实例的创建。
1 //公共接口 2 public interface Sender { 3 public void send(); 4 } 5 6 //实现类1 7 public class MailSender implements Sender { 8 9 @override 10 public void send() { 11 System.out.println("Send Email"); 12 } 13 14 } 15 16 //实现类2 17 public class SmsSender implements Sender { 18 19 @override 20 public void send() { 21 System.out.println("Send Sms"); 22 } 23 24 } 25 26 //建立工厂类 27 public class FactorySend { 28 public Sender produce(String type){ 29 if("mail".equals(type){ 30 return new MainSender(); 31 } 32 if("sms".equals(type){ 33 return new SmsSender(); 34 } else { 35 return null; 36 } 37 } 38 39 }
二、多个方法简单工厂
概念:提供多个工厂方法,分别创建对象。
1 //建立工厂类 2 public class FactorySend { 3 4 public Sender produceMail(){ 5 6 return new MainSender(); 7 } 8 9 public Sender produceSms(){ 10 11 return new SmsSender(); 12 } 13 14 }
三、多个静态方法简单工厂
概念:提供多个静态工厂方法,分别创建对象。
1 //建立工厂类 2 public class FactorySend { 3 4 public static Sender produceMail(){ 5 6 return new MainSender(); 7 } 8 9 public static Sender produceSms(){ 10 11 return new SmsSender(); 12 } 13 14 }
工厂模式应用:
大量产品需要创建,并且具有共同的接口。
多数情况下使用静态工厂方法模式较好一点。
存在的问题:类的创建依赖工厂类,想要拓展的话,必须修改工厂类。