知识大全 打破Java定律:无需创建对象
Posted 知
篇首语:自由的生活方式是借知识和洞察获得的。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 打破Java定律:无需创建对象相关的知识,希望对你有一定的参考价值。
打破Java定律:无需创建对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
我们知道 在Java基本教程中有一个定律告诉我们 所有的对象都必须创建 或者说 使用对象之前必须创建 但是现在我们可以不必一定遵循这个定律了 我们可以从Ioc容器中直接获得一个对象然后直接使用 无需事先创建它们
这种变革 就如同我们无需考虑对象销毁一样 因为Java的垃圾回收机制帮助我们实现了对象销毁 现在又无需考虑对象创建 对象的创建和销毁都无需考虑了 这给编程带来的影响是巨大的
我们从一个简单例子开始 有一个普通类B代码如下
public class B implements BI
AInfterface a;
public B(AInfterface a)
this a = a
public void invoke()
/** */
有两种使用B的方式
普通无Ioc容器的调用方式:
BI b = new B(new A());//需要在生成B实例之前 生成A等实例
b invoke();
使用Ioc容器(Jdon框架)的革命调用方式
BI b = (BI) WebAppUtil getService( b );
b invoke();
上面两种方式重要区别
前者需要照顾B类中A类的实例化 如果B类中调用不只A类一个 还有更多其他类如C/D/E等类 这样 你在使用B类时 还需要研究其他类的创建 如果C/D/E这些类不是你自己编写 你还需要翻阅它们的API说明 研究它们应该如何创建?是使用New 还是工厂模式 还是单态调用?
这时 你会感叹 哇 有没有搞错?我只不过是为了使用B类中一个小小的方法 就花去我这么多时间和精力?
当我们使用第二种方式时 就无需花很多精力和时间考虑A/C/D/E等类的创建
使用Ioc容器 你再也不必做这些僵化愚蠢的工作了 我们只需从ioc容器中抓取一个类然后直接使用它们
当然 在使用之前 我们需要做一个简单的配置 把你将来需要使用的类全部告诉ioc容器 例如Jdon框架的ioc容器配置jdonframework xml如下:
<app>
<services>
<pojoService name= b class= test B />
<pojoService name= a class= test A />
<pojoService name= c class= test C />
</services>
</app>
注意 虽然B类代码调用了A类(甚至可能调用C等其他类) 但是在配置中我们无需考虑这种调用关系 因此 整个环节我们都无需考虑B类中涉及其他类的调用关系 这样是非常省时省力的 特别是如果项目较大 JavaBeans特别多 又是多人协调开发 这种方式对提高开发效率 降低出错率是非常大的帮助
如果你的项目中有非常多的类 调用关系很复杂 而且调用关系随时都可能变化 那么 使用无需照顾调用关系的Ioc容器无疑是减轻开发负担的首选
ioc容器另外一个著名实现是Spring框架 但是在Spring的配置文件applicationContext xml中 我们必须考虑上述调用关系
<bean id= b class= test B >
<property name= a ><ref bean= a /></property><! 必须指定调用关系 >
</bean>
<bean id= a class= test A >
<bean id= c class= test C >
所以 从以上对比来看 从项目开发效率角度看 基于PiocContainer实现的Jdon框架在实际使用配置效率无疑要高于Spring框架
cha138/Article/program/Java/hx/201311/26863相关参考
Java网络编程从入门到精通(25):创建ServerSocket对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
javalangNullPointerException 这个异常大家肯定都经常遇到异常的解释是程序遇上了空指针简单地说就是调用了未经初始化的对象或者是不存在的对象这个错误经常出现在创建图片调用
Java程序性能优化-Amdahl定律 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  
当然也可以结合工厂模式来创建AbstractSpoon实例 在Java中Prototype模式变成clone()方法的使用由于Java的纯洁的面向对象特性 使得在Java中使用设计模式变得很自
生成密钥对 生成密钥对可用java提供的类KeyPairGenerator用其中的getInstance方法创建KeypairGenerator对象在用initialize进行初始化最后用gen
JScript创建自己的对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 创建自己的对象 要
Java模式设计之单例模式(一) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 作为对象的创建模
从技术角度说OOP(面向对象程序设计)只是涉及抽象的数据类型继承以及多形性但另一些问题也可能显得非常重要本节将就这些问题进行探讨 最重要的问题之一是对象的创建及破坏方式对象需要的数据位于哪儿如何
很简单的一个例子: 不要使用 Stringts=newString(hello); 这样会生成多余的对象 最好使用 Stringts=hello; //addbychris 很多文章
用C#创建COM对象 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在本篇文章中我们将讨论下面的