在JAVA中创建对象

在JAVA中创建对象


2024年5月16日发(作者:)

总第207期 

在JAVA中创建对象 

施勇军 

(上海电视大学崇明分校 上海 202150) 

摘要使用Java语言进行程序设计,首先是设计类,然后是使用类创建对象,最后才是使用对象。使用类创建对象,在程序开发中 

起着承上启下的作用。Java语言提供了三种基本的对象创建方法,但随着程序复杂度的提高,它们很难满足需要,而且商业开发对 

代码的可复用和可维护提出了很高的要求。我们在程序设计中引入了工厂设计模式和工具类的概念,在~定程度上满足了这些需 

要。 

关键词面向对象 模式 Spring 

中图分类号TP31 1 文献标识码B 文章编号1 1 0602—5792 

Creating Objects in JAVA 

Shi Yongjun 

(Shanghai TV University Chongrning Branch Shanghai 202 1 50) 

Abstract For programming with Java language,the first is to design the class,then to create objects using the class, 

and ifnally to use the language.To create an object using the class plays a connecting role in the program development. 

Java language provides three basic approaches to object creation,but with the program more complex,these approaches 

can no longer meet the needs,and business development makes a higher demand on the maintainability and reusability of 

the code.In programming we have introduced the concept of the factory design pattern and tool class,which can meet 

these demands to some extent. 

Keywords Object-oriented Patterns Spring 

JAVA作为一种面向对象的编程语言,它的核心就是对象, 

或运行中创建对象,也就是说可以根据存储在字符串的类名创 

而类可以看成是创建对象的模板。类、对象和接口等构成了 

建一个对象。以上面的Person类为例: 

JAVA语言不可缺少的概念 然而最基本的还是要掌握对象的 

Person fPerson=Class.forName(“Person”).newlnstanees() 

声明和实例化。也许你认为声明和实例化对象是最简单的事情, 

入,对创建对象也提出了更新、更高的要求。 

上面我们介绍的无论哪种方式,实际上它都是通过类的公 

但是随着我们对软件的可复用性和可维护性的要求的不断深 有构造器来声明实例化对象的。那么是不是能通过不直接使用 

构造器来创建对象?在JAVA中,我们还可以先创建一个对象, 

也许你认为花费大量的时问去编写可维护、复用的程序并 然后对这个对象进行克隆来实现对象的创建,这时候创建的新 

但是相同的状态,然 

不值得,重要的是如何尽快的让代码工作起来。但是许多时候我 

对象和原来的对象就拥有不同的存储区域,

 

们认为“一次性”的个人代码,却要在很多地方重复使用,甚至可 

后可以根据需要来修改新对象的状态。例如:

能要提供给不同的人使用。时间会证明我们在可维护和复用上 

的付出是值得的,更不用说现在软件的商业开发对时间和效率 

的苛求了。 

Employee original=new Employee() 

Employee copy ori na1.clone() 

copy.ralseSalary(10) 

使用JAVA的基本概念来创建对象 

在克隆过程中,对象的创建是直接在内存中进行拷贝,构造 

需 

大家都比较熟悉的是通过new运算符来创建对象,格式如 

函数是不会执行的。优点是减少了约束,缺点也是少了约束,

要在实际使用中注意这点。另外在进行克隆的时候,它比直接使 

下: 

<类名><对象名>=new<类名>([<参数列表>]) 

其中参数列表是可选的。例如:PersonfPerson=newPers0n(o 

此外,JAVA还提供了一种称为“反射”的功能,能够在设计 

用new运算符创建对象拥有更好的效率。 

二、使用工厂类来创建对象 

可能有人认为在JAVA中创建对象,就是简单的做一下选 

42‘ 办公自动化杂志 

择,选择上面的某一种方法就可以了,完全没有必要将问题想的 

厂模式是从工厂方法模式进一步推广而来的,最早主要应用 

太复杂,但大家有没有考虑一下我们在进行程序设计、软件开 

于创建分属不同操作系统的视窗构建。抽象工厂模式并非说 

发的时候往往需要创建大量的对象,而且要创建大量有相互关 在软件的可维护和可复用上比工厂方法模式提高了一个等 

系的对象,如果不系统的分析一下创建对象的方式方法,可能 

级,只是对拥有更复杂关系的对象提供了一种如何创建解决方 

在编程就会变的举步维艰、事倍功半了。 

案。 

我们可以在类中提供一个公有的静态工厂方法,然后把它 

在我们享受工厂方法模式带来的好处的时候,我们不可避 

设计成可以返回类的实例的静态方法。静态方法可以直接放置 

免的也体会到,由于要创建的对象种类的增加而带来的具体工 

在要声明的类中,也可以单独的创建一个放置静态方法的类。 

厂子类数量的增加。解决的方法是将简单工厂模式中使用的工 

如果是单独设计的类,由于这个类专门用于负责创建对象,我 

厂类嫁接过来使用,但是这样工厂类数量减少了,但类中却要 

们形象的称为工厂类。如果我们进行仔细的分析的话,其实在 

增加许多逻辑判断来决定具体创建什么类型对象。所以最好的 

JAVA语言的API中很多类都提供静态工厂方法,使用它的好 

解决方法是使用单独工厂类,然后在类的工厂方法中使用前面 

处在哪里呢? 

介绍的反射机制来决定需要的对象类型。 

有时候如果我们对于创建的对象有些特殊要求,例如希望 

类只能带有一个指定签名的构造器,而静态工厂方法可以 

根据需要慎重的选择方法名,来实现需要多个带有相同签名构 

类只能创建一个对象或者希望工厂类能向外界提供循环使用 

造器的情况;使用静态工厂类不必像构造器那样每次调用都创 

的对象,我们还可以将它修改为单例模式和多例模式。 

建一个新对象,能够更加高效的利用创建的对象;此外静态工 

厂方法还可以返回原返回类型的任何子类型的对象,使得我们 

在选择返回对象的类型时有了更大的灵活性;最后在创建参数 

化类型实例的时候,它也使得代码变得更加简洁。 

在这里我们将静态工厂方法的使用称为简单工厂模式或 

静态工厂方法模式,所谓的模式就是指针对某一类问题的最佳 

的解决方案,一种面向对象程序设计的思路。静态工厂模式有 

它自己的不足,由于它使用了静态方法作为工厂方法,而静态 

方法无法由子类继承,因此工厂角色无法形成基于继承的等级 

结构,但正因为如此,它鼓励程序员在设计中多使用复合,而不 

是继承。 

三、使用Spring框架来创建对象 

随着工厂模式使用的深入人心,我们在进行程序设计的时 

候在代码中会大量使用各种工厂类,应用系统越大,相应的工 

厂类越多。一般情况下,工厂类都是简单的、仅提供静态方法和 

变量的单实例。它们都是创建对象,并将这些对象绑定在一起。 

显而易见,这将存在大量的重复代码。由此我们就考虑是否能 

提供一种专门的工具类用于对象的创建呢,而Spring框架某种 

程度上就是为了适应程序员这些需要而诞生的,当然这也正是 

它的部分功能。 

那么就创建对象我们来看看Spring框架是如何来工作的: 

・读取并分析Spring基于XML格式配置文件 

・通过JAVA反射机制,创建并继承上述配置文件中定义 

的对象 

在静态工厂模式中我们习惯使用一个工厂类中的静态方 

法来创建对象,它能够将对象的创建和使用独立开来,从一 

定程度上支持了“开一闭”原则,就是说在设计一个模块的时 

候,应当使这个模块可以在不被修改的前提下被扩展。但是 

在这个模式中,如果我们希望能增加创建的对象的种类的时 

・将创建的对象传回给开发者的应用代码。 

因此,使用Spring框架开发者就不用再编写工厂类,只要 

 

候,显然就不能很好的满足“开一闭”原则,因为我们需要对 

进行配置文件管理就可以了。

在实际的程序设计过程中,我们必须要谨慎选择创建对象 

其中的工厂类作大量的修改。所以我们为了能更高效的创建 

综合考虑代码设计的简洁高效、可复用和可维护等方 

对象,引入工厂方法模式,它是对简单工厂模式的进一步抽 

的方法,

面的需要。随着编程思想的不断深化,我们也可能开发出更高 

象和推广。 

作为一个程序设计人员不能停住思考的 

在工厂方法模式中,核心的工厂类不再负责所有的对象的 

效的对象创建的方式,

 

创建,而是将具体创建的工作交由子类去做。原来的核心工厂 

步伐。

类变成了一个抽象工厂接口,只负责给出具体工厂子类必须实 

现的接口,而不接触如何创建不同对象这种细节,对象的创建 

交由具体的工厂子类负责。如果需要创建不同的对象,就可以 

不通过修改具体的工厂子类,而是引入新的工厂子类,这无疑 

参考文献 

使它超越简单工厂模式,更好的支持了“开一闭”原则。使用工 

厂方法模式使用户不必知道它所使用的对象是怎么被创建的, 

只需要知道该对象有哪些方法,拿来使用就行了。 

在上面的介绍的模式中,我们创建的对象是出于一个产品 

[1】罗时飞.精通Spring[M].电子工业出版社.2005. 

[2]阎宏.Java与模式[M].电子工业出版社.2010. 

[3]耿祥义.Java设计模式[M].清华大学出版社.2009 

等级结构中的,那么如果我们想创建更复杂一些的出于多个产 

作者简介 

品等级结构中的对象呢,就必须依靠抽象工厂模式了。抽象工 施勇军,男,1977,上海电视大学崇明分校职称:助教。 

办公自动化杂志‘43‘ 


发布者:admin,转转请注明出处:http://www.yc00.com/news/1715859616a2682821.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信