• 工厂模式三


    工厂模式三

    demo3:

    下面可以看到修改后的factory以后扩充类时不用修改即可

    新的问题:
     *      在项目中可能用几十个类同时实现了一个接口,用户是如何知道已有的接口子类呢?
     *      我们 可以用代号-->子类的包.类名称,我们通过代号去访问,再给用户一个文件列表给用户列出全部的代码--子类的映射

    Code
    class Factory {
        
    public static Fruit getFruitInstance(String type) {
            Fruit f 
    = null;

                
    //通过Class类来完成 通过包名和类名来实例化这个类
            
    //这个方法返回的是object需要一个转型
            try {
                f
    =(Fruit)Class.forName("com.miao.factoryDemo3"+type).newInstance();
            } 
    catch (Exception e) {
                
                e.printStackTrace();
            }
            
    return f;
        }
    }

    public class factoryDemo3 {
        
    public static void main(String args[]) {
            
    // 以下是以前紧密耦合的工厂使用方法,子类与父类紧紧结合
            /**
             * Fruit f=new Apple(); f.grow(); f.pick();
             
    */
            
    // //////////////////////////////
            /**
             * //下面用上面的类Factory来实现 Fruit f=Factory.getFruitInstance(); f.grow();
             * f.pick(); /////////////////////////////
             
    */

            
    // demo2 中对其进行修改
            if (args.length == 0) {
                System.out.println(
    "请输入要使用的类名称:");
                System.exit(
    1);
            }

            Fruit f 
    = Factory.getFruitInstance(args[0]);
            
    if (f != null) {
                f.grow();
                f.pick();
            } 
    else {
                System.out.println(
    "没有发现这个类型。");
            }

        }
    }

  • 相关阅读:
    elasticsearch的服务器响应异常及解决策略(转)
    年薪30W的软件测试“老司机”工作经验
    Selenide 阶段性总结介绍(UI自动化测试工具)
    自动化测试的类型以及对测试自动化的几个误区
    使用Jmeter进行http接口性能测试
    如何修炼为测试架构师
    关于接口测试的一点小小的感悟
    详细讲解 A/B 测试关键步骤,快来检查下还有哪些疏漏的知识点
    JMeter测试WebSocket的经验总结
    Android 自动化测试及性能数据采集的 Python 脚本
  • 原文地址:https://www.cnblogs.com/zhxiaomiao/p/1409943.html
Copyright © 2020-2023  润新知