JAVA设计模式工厂模式之简单工厂-1

JAVA设计模式工厂模式之简单工厂-1

ID:39550237

大小:18.94 KB

页数:4页

时间:2019-07-06

JAVA设计模式工厂模式之简单工厂-1_第1页
JAVA设计模式工厂模式之简单工厂-1_第2页
JAVA设计模式工厂模式之简单工厂-1_第3页
JAVA设计模式工厂模式之简单工厂-1_第4页
资源描述:

《JAVA设计模式工厂模式之简单工厂-1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、序在java中,设计模式是多态和封装的重要表现形式,采用设计模式能够极大地提升可维护性和可扩展性,那么,同样工作在jvm上面的Clojure能否运用这些模式,或者说是否同样需要这些模式呢?注:本文基于jdk1.6和Clojure1.2简单工厂先看看简单工厂的java代码:首先定义产品的接口:1.public interface IProduct { 2. 3.    /** 4.     * 使用产品 5.     * @param msg 6.     */ 7.    public void use(String msg); 8.} 然后是实现了这个接口的两个具体产品P

2、roduct1和Product2:1.public class Product1 implements IProduct { 2. 3.    @Override 4.    public void use(String msg) { 5.        System.out.println("Product1 use:"+msg); 6.    } 7. 8.} 9. 10.public class Product2 implements IProduct { 11. 12.    @Override 13.    public void use(String msg) 

3、{ 14.        System.out.println("Product2 use:"+msg); 15.    } 16. 17.} 最后是根据类型获取产品的简单工厂:1.public class SimpleFactory { 2. 3.    /** 4.     * 根据产品类型生产产品 5.     * @param productType 6.     * @return 7.     */ 8.    public static IProduct factory(String productType){ 9.        if(productType

4、.equals("1")) 10.            return new Product1(); 11.        else if(productType.equals("2")) 12.            return new Product2(); 13.        return null; 14.    } 15.} 这样,我们在java中就构建了能够生产出两个不同产品的简单工厂了。接下来,我们调用一下:1./** 2. * 简单工厂调用 3. * @author RoySong - 2011-10-27 4. */ 5.public class S

5、impleFactoryTest { 6. 7.    /** 8.     * @param args 9.     */ 10.    public static void main(String[] args) { 11.        IProduct product1 = SimpleFactory.factory("1"); 12.        product1.use("something"); 13.         14.        IProduct product2 = SimpleFactory.factory("2"); 15.        

6、product2.use("something"); 16.    } 17. 18.} 运行这个调用程序,我们能够得到预期的结果:1.Product1 use:something 2.Product2 use:something 那么,在Clojure中应该如何实现呢?首先,让我们再回顾一下采用简单工厂的目的,这是为了将业务对象的产生和业务方法的执行进行解耦,使得业务方法执行时无须关注业务对象的类型。为了达到这个目的,我们提取了业务对象的接口IProduct(在实际的应用中也有可能是一个父类Product),它的里面包含了所有业务对象的共同操作use(在实际应用中可能不止

7、这一种业务操作,当然也不叫use)的方法声明。然后,由SimplyFactory来创建IProduct的实例对象,然后调用use业务方法。在这个时候,调用方法是无须关注被调用的具体是哪个实例对象--Product1还是Product2。好吧,为了业务对象的产生和业务方法的执行解耦。然后,Clojure中没有对象一说,方法倒是有,不过叫做函数。于是,问题解决了,没有对象,则无须对对象的产生进行解耦。本文结束。抛开上面的文字游戏不谈,实际上Clojure的解决方式更为灵活,这是由其语言特性所决定的。在java中,一切都

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。