豆子有什么作用?

18

我一直在学习JSP教程,但不理解Bean类的作用。它只是由get和set方法组成,为什么要使用它们?

public class UserData {

String username;
String email;
int age;

public void setUsername( String value )
{
    username = value;
}

public void setEmail( String value )
{
    email = value;
}

public void setAge( int value )
{
    age = value;
}

public String getUsername() { return username; }

public String getEmail() { return email; }

public int getAge() { return age; }

而且jsp就是这样的

<jsp:useBean id="user" class="user.UserData" scope="session"/> 
<HTML>
<BODY>
You entered<BR>
Name: <%= user.getUsername() %><BR>
Email: <%= user.getEmail() %><BR>
Age: <%= user.getAge() %><BR>
</BODY>
</HTML>

与JavaBeans有关:https://dev59.com/EXI-5IYBdhLWcg3wsKl4。如果没有JavaBeans,你最终会得到`Object[]`或`Object[][]`或`Map<String, Object>`等不可重用和自描述的东西,甚至什么都没有(代码逻辑高度耦合)。 - BalusC
6个回答

13
  1. 一个Bean获得了Java“编写一次,随处运行”的所有好处。可以控制向应用程序构建器工具公开的Bean的属性、事件和方法。

  2. Bean可以被设计为在不同的区域设置下正确操作,这使其在全球市场上非常有用。

  3. 可以提供辅助软件来帮助人们配置Bean。只有在设置该组件的设计时参数时才需要此软件。它不需要包含在运行时环境中。Bean的配置设置可以保存在持久存储中,并在以后恢复。

  4. Bean可以注册以接收来自其他对象的事件,并生成发送到其他对象的事件。

自十多年前出现标签库(如JSTL)和表达式语言(Expression Language,即那些${}东西)以来,使用脚本片段(那些<% %>东西)确实是不鼓励的。脚本片段的主要缺点是:

  1. 可重用性:您无法重复使用脚本片段。

  2. 可替换性:您无法使脚本片段抽象化。

  3. 面向对象能力:您无法利用继承/组合。

  4. 调试能力:如果脚本片段在中途引发异常,则只会得到一个空白页面。

  5. 可测试性:脚本片段不可进行单元测试。

  6. 可维护性:需要更多的时间来维护混杂/杂乱/重复的代码逻辑。


5
JavaBeans的主要原因是为了实现可重用性。JavaBeans可以在JSP、Servlet和其他Java技术中使用。
它是一个简单的可序列化对象,用于将许多对象封装成一个对象。也就是说,我们可以发送一个完全定义好的bean,而不是逐个属性地通过网络传输。

4

我在阅读JavaFX属性和绑定教程时,实际上了解到了JavaBeans的含义。以下是其中一段文字。

Java编程语言允许你将数据封装在对象内部,但它并不强制要求你定义特定命名规则的方法。例如,你的代码可能定义了一个Person类,它封装了名字和姓氏。但是在没有命名规范的情况下,不同的程序员可能会为这些方法选择不同的名称:read_first()、firstName()、getFN()等都是完全有效的选择。然而,并不能保证这些名称对其他开发人员有意义。

JavaBeans组件体系结构通过定义一些简单的命名规则来解决了这个问题,从而在项目之间带来了一致性。在JavaBeans编程中,这些方法的完整签名将是:public void setFirstName(String name)、public String getFirstName()、public void setLastName(String name)和public String getLastName()。这种命名模式易于被人类程序员和编辑工具(如NetBeans IDE)识别。在JavaBeans术语中,Person对象被称为包含firstName和lastName属性。

JavaBeans模型还提供了对复杂属性类型的支持,以及事件传递系统。它还包含许多支持类,全部都作为java.beans包下的API提供。因此,掌握JavaBeans编程涉及学习所需的命名约定及其对应的API。(有关JavaBeans的更多背景阅读,请参见Java教程中的JavaBeans课程)。


3

访问器(getter)和修改器(setter)方法通常用于提供封装。由于实例变量是私有的,因此只能通过这些方法在类外部访问它们。

因此,通俗地说:封装的关键优点是能够在不破坏使用您代码的其他人的代码的情况下更改您的实现代码。


1

你可以使用JSP而不需要用到beans,不过结果会是负责逻辑和美观呈现的代码混在一起。这并不是理想的情况,尤其是大多数情况下,有一个人组编写逻辑代码,另一个人则负责美化网站,因此使用beans可以实现一定程度的分离,使得建立网站的人更容易。

同时,beans也允许您重复使用代码,这也是使用它们的另一个原因。


1

它主要用于重复使用。它是一个简单的可序列化对象,用于将多个对象封装成一个。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接