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 }
此代码含new耦合,有待优化。

相关文章:

  • 2021-09-17
  • 2022-02-19
  • 2021-09-29
  • 2022-12-23
  • 2021-06-18
猜你喜欢
  • 2018-03-30
  • 2021-08-24
  • 2021-05-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-26
相关资源
相似解决方案