加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 工厂模式的真正优势

发布时间:2020-12-14 19:34:39 所属栏目:Java 来源:网络整理
导读:我一年以来一直在使用工厂模式.有时我只觉得真正的优势就是干净的代码.让我解释, interface A { public void test();}class B implements A { public void test() { }}class C implements A { public void test() { }}class Factory { public static A getOb
我一年以来一直在使用工厂模式.有时我只觉得真正的优势就是干净的代码.让我解释,
interface A {

    public void test();
}

class B implements A {
    public void test() {

    }
}

class C implements A {
    public void test() {

    }
}

class Factory {
    public static A getObject(String name){
        if(name.equalsIgnoreCase("B")){
            return new B();
        }else if(name.equalsIgnoreCase("C")){
          return new C();
        }
        return new B(); 

    }
}

public class Test {

    public static void main(String[] args) {
        A a = Factory.getObject(args[0]);

        // if i dint use factory pattern
        A nofactory=null;
        if(args[0].equalsIgnoreCase("B")){
            nofactory= new B();
        }else if(args[0].equalsIgnoreCase("C")){
            nofactory= new C();
        }
    }
}

从上面的代码我觉得工厂模式只是美化代码,如果我的理解是错误的,请告诉我.

解决方法

如果接口A和类B和C在库中,并且您的代码是使用库的主要方法,则意味着可以将类D,E等添加到库中,您可以在不更改代码的情况下使用它们.选择使用哪个实现的责任移到了库中.

此外,您的示例非常简单.其他时候输入可能比完全匹配类型的字符串更复杂.输入可以是具有特定格式的文件,例如需要读取某个实现.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读