欢迎来到天天文库
浏览记录
ID:40297200
大小:70.00 KB
页数:5页
时间:2019-07-30
《JAVA设计模式工厂模式之简单工厂》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、您所在的位置:开发>Java>设计模式>JAVA设计模式:工厂模式之简单工厂(1)JAVA设计模式:工厂模式之简单工厂(1)2011-11-1716:03songrysongry的博客我要评论(0)字号:T
2、T在java中,设计模式是多态和封装的重要表现形式,采用设计模式能够极大地提升可维护性和可扩展性,那么,同样工作在jvm上面的Clojure能否运用这些模式,或者说是否同样需要这些模式呢?AD:序在java中,设计模式是多态和封装的重要表现形式,采用设计模式能够极大地提升可维护性和可扩展性,那么,同样工作在jvm上面的Clojure能否运用这些模式,或者说是否
3、同样需要这些模式呢?注:本文基于jdk1.6和Clojure1.2简单工厂先看看简单工厂的java代码:首先定义产品的接口:1.public interface IProduct { 2. 3. /** 4. * 使用产品 5. * @param msg 6. */ 7. public void use(String msg); 8.} 然后是实现了这个接口的两个具体产品Product1和Product2:1.public class Product1 implements IProduct { 2. 3. @Overri
4、de 4. public void use(String msg) { 5. System.out.println("Product1 use:"+msg); 6. } 7. 8.} 9. 1.public class Product2 implements IProduct { 2. 3. @Override 4. public void use(String msg) { 5. System.out.println("Product2 use:"+msg); 6. } 7. 8.} 最后是根据类型获取产
5、品的简单工厂:1.public class SimpleFactory { 2. 3. /** 4. * 根据产品类型生产产品 5. * @param productType 6. * @return 7. */ 8. public static IProduct factory(String productType){ 9. if(productType.equals("1")) 10. return new Product1(); 11. else if(produc
6、tType.equals("2")) 12. return new Product2(); 13. return null; 14. } 15.} 这样,我们在java中就构建了能够生产出两个不同产品的简单工厂了。接下来,我们调用一下:1./** 2. * 简单工厂调用 3. * @author RoySong - 2011-10-27 4. */ 5.public class SimpleFactoryTest { 6. 7. /** 8. * @param args 9. */ 10. pu
7、blic static void main(String[] args) { 11. IProduct product1 = SimpleFactory.factory("1"); 12. product1.use("something"); 13. 14. IProduct product2 = SimpleFactory.factory("2"); 15. product2.use("something"); 16. } 1. 2.} 运行这个调用程序,我们能够得到预期的结果:1.P
8、roduct1 use:something 2.Product2 use:something 那么,在Clojure中应该如何实现呢?首先,让我们再回顾一下采用简单工厂的目的,这是为了将业务对象的产生和业务方法的执行进行解耦,使得业务方法执行时无须关注业务对象的类型。为了达到这个目的,我们提取了业务对象的接口IProduct(在实际的应用中也有可能是一个父类Product),它的里面包含了所有业务对象的共同操作use(在实际应用中可能不止这一种业务操作,当然也不叫use)的方法声明。然后,由SimplyFactory来创建IProduct的实例对象,然后调用use
9、业务方法。
此文档下载收益归作者所有