1 package 反射; 2 interface Product{ 3 public void produce(); 4 } 5 class socks implements Product{ 6 @Override 7 public void produce() { 8 System.out.println("袜子被生产"); 9 } 10 } 11 /* 12 class shoes implements Product{ 13 @Override 14 public void produce() { 15 System.out.println("鞋子被生产"); 16 } 17 } 18 */ 19 class Factory{ 20 private static Product product; 21 public static Product getInstance(String productName){ 22 if(productName.equals("袜子")) 23 product=new socks(); 24 /*每添加一个产品就得增加getInstance方法的代码,可以利用反射改写 25 if(productName.equals("鞋子")) 26 product=new shoes(); 27 */ 28 return product; 29 } 30 } 31 public class TestFactory { 32 public static void main(String[] args) { 33 Product product=Factory.getInstance("袜子"); 34 product.produce();//袜子被生产 35 /* 36 Product product2=Factory.getInstance("鞋子"); 37 product2.produce();//鞋子被生产 38 */ 39 } 40 }
相关文章: