zoukankan      html  css  js  c++  java
  • 工厂模式Patch V1.01

    出去吃顿饭的功夫就发现了两个问题。

    第一个:

    新建实例的时候直接用c.newInstance()会不会导致程序在c不存在的时候出错?

    测试了一下,如果c不存在的话,场景类里会报错,那看来还是可以直接这么用,不需要Class.forName()。

    这段代码会报错:

    Product twoThreeThree = factory.createProduct(Product233.class);
    twoThreeThree.printName();

    另一个:

    我一开始回忆着敲代码的时候把生产方法设成了静态函数,但是后来想到要new工厂的实例,就把static关键字删掉了。

    但是刚才出门之后发现,我完全可以不用实例化工厂类啊。

    这样的话,方法头加一个关键字,要用的时候只要

    Product one = ProductFactory.createProduct(Product1.class);

    就可以了。

    第三个:

    生产方法的参数其实不一定是class,是字符串或者是Enum类型都可以,Enum还更好用一点。

    在方法内用参数获取相应的类就行了。

    先用空值初始化要返回的对象,如果找不到那个类就返回null就可以了。

  • 相关阅读:
    Caesar cipher
    遗传算法之背包问题
    Transport scheme NOT recognized: [stomp]
    error running git
    Canvas 旋转的图片
    canvas时钟
    火箭起飞
    让图标转起来
    Tomcat启动脚本
    Task中的异常处理
  • 原文地址:https://www.cnblogs.com/chihane/p/3603839.html
Copyright © 2011-2022 走看看