RSS订阅欢迎来到Java程序员学习天地!
你的位置:首页 » Java开发中的23种模式(一)

Java开发中的23种模式(一)

6.          sender.Send();  

7.      }  

8.  }  

输出:this is mailsender!

33、静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可。

[java] view plaincopy

1.  public class SendFactory {  

2.        

3.      public static Sender produceMail(){  

4.          return new MailSender();  

5.      }  

6.        

7.      public static Sender produceSms(){  

8.          return new SmsSender();  

9.      }  

10. }  

[java] view plaincopy

1.  public class FactoryTest {  

2.    

3.      public static void main(String[] args) {      

4.          Sender sender = SendFactory.produceMail();  

5.          sender.Send();  

6.      }  

7.  }  

输出:this is mailsender!

总体来说,工厂模式适合:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建。在以上的三种模式中,第一种如果传入的字符串有误,不能正确创建对象,第三种相对于第二种,不需要实例化工厂类,所以,大多数情况下,我们会选用第三种——静态工厂方法模式。

2、抽象工厂模式(Abstract Factory)

工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我们先看看图,然后就和代码,就比较容易理解。

 

请看例子:

[java] view plaincopy

1.  public interface Sender {  

2.      public void Send();  

3.  }  

两个实现类:

[java] view plaincopy

1.  public class MailSender implements Sender {  

2.      @Override  

3.      public void Send() {  

4.          System.out.println("this is mailsender!");  

5.      }  

6.  }  

[java] view plaincopy

1.  public class SmsSender implements Sender {  

2.    

3.      @Override  

4.      public void Send() {  

5.          System.out.println("this is sms sender!");  

6.      }  

7.  }  

额 本文暂时没人评论 来添加一个吧

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

控制面板
您好,欢迎到访网站!
随机文章
热门文章
热评文章
最近发表