工厂方法模式:
创建一个工厂接口和创建多个工厂实现类。
当需要增加多个功能时,直接增加新的工厂类就可以了,不需要修改之前的代码。
1 //创建共同接口 2 public interface Sender { 3 public void send(); 4 } 5 6 //两个实现类 7 public class MailSender implements Sender { 8 @override 9 public void send() { 10 System.out.println("Send Mial"); 11 } 12 } 13 14 15 public class SmsSender implements Sender { 16 @override 17 public void send() { 18 System.out.println("Sms Mial"); 19 } 20 } 21 22 23 //创建一个工厂接口 24 public interface Factory { 25 public Sender produce(); 26 } 27 28 29 //两个工厂类 30 public class SendMailFactory implements Factory { 31 @override 32 public Sender produce() { 33 return new MailSender(); 34 } 35 } 36 37 38 public class SendSmsFactory implements Factory { 39 @override 40 public Sender produce() { 41 return new SmsSender(); 42 } 43 }
好处:便于新增功能,而无需更改之前的代码。
比如:新增一个发送及时信息的功能,只需要写一个实现类,实现Sender接口,再写一个工厂类,实现Provide接口就可以了,拓展性较好。