当前位置:天才代写 > tutorial > JAVA 教程 > 什么是Bean

什么是Bean

2017-11-13 08:00 星期一 所属: JAVA 教程 浏览:374

在经细节处理惩罚后,一个组件在类中被奇特的详细化,真正地成为一块代码。要害的争议在于应用措施构建东西发明组件的属性和事件本领。为了建设一个VB组件,措施开拓者不得不编写正确的同时也是巨大啰嗦的代码片,接下理由某些协议去揭示它们的事件和属性。Delphi是第二代的可视化编程东西而且这种开拓语言主动地环绕可视化编程来设计因此它更容易去建设一个可视化组件。可是,Java带来了可视化的创作组件做为Java Beans第一流的“装备”,因为一个Bean就是一个类。我们不必再为制造任何的Bean而编写一些非凡的代码可能利用非凡的编程语言。事实上,我们独一需要做的是略微地修改我们对我们要领定名的步伐。要领名通知应用措施构建东西是否是一个属性,一个事件或是一个普通的要领。
在Java的文件中,定名法则被错误地曲解为“设计范式”。这十分的不幸,因为设计范式(拜见第16章)惹来不少的贫苦。定名法则不是设计范式,它是相当的简朴:
(1) 因为属性被定名为xxx,我们代表性的建设两个要领:getXxx()和setXxx()。留意get或set后的第一个字母小写以发生属性名。“get”和“set”要领发生同样范例的自变量。“set”和“get”的属性名和范例名之间没有干系。
(2) 对付布尔逻辑型属性,我们可以利用上面的“get”和“set”要领,但我们也可以用“is”取代“ get”。
(3) Bean的普通要领不适合上面的定名法则,但它们是公用的。
4.对付事件,我们利用“listener(吸收器)”要领。这种要领完全同我们看到过的要领沟通:(addFooBarListener(FooBarListener)和removeFooBarListener(FooBarListener)要领用来处理惩罚FooBar事件。大大都时候内建的事件和吸收器会满意我们的需要,但我们可以建设本身的事件和吸收器接口。
上面的第一点答复了一个关于我们大概留意到的从Java 1.0到Java 1.1的改变的问题:一些要领的名字过分于短小,显然改写名字毫无意义。此刻我们可以看到为了制造Bean中的非凡的组件,大大都的这些修改不得不适合于“get”和“set”定名法则。
此刻,我们已经可以操作上面的这些指导目的去建设一个简朴的Bean:
 

//: Frog.java
// A trivial Java Bean
package frogbean;
import java.awt.*;
import java.awt.event.*;

class Spots {}

public class Frog {
  private int jumps;
  private Color color;
  private Spots spots;
  private boolean jmpr;
  public int getJumps() { return jumps; }
  public void setJumps(int newJumps) { 
    jumps = newJumps;
  }
  public Color getColor() { return color; }
  public void setColor(Color newColor) { 
    color = newColor; 
  }
  public Spots getSpots() { return spots; }
  public void setSpots(Spots newSpots) {
    spots = newSpots; 
  }
  public boolean isJumper() { return jmpr; }
  public void setJumper(boolean j) { jmpr = j; }
  public void addActionListener(
      ActionListener l) {
    //...
  }
  public void removeActionListener(
      ActionListener l) {
    // ...
  }
  public void addKeyListener(KeyListener l) {
    // ...
  }
  public void removeKeyListener(KeyListener l) {
    // ...
  }
  // An "ordinary" public method:
  public void croak() {
    System.out.println("Ribbet!");
  }
} ///:~

首先,我们可看到Bean就是一个类。凡是,所有我们的字段会被作为专用,而且可以靠近的独一步伐是通过要领。紧接着的是定名法则,属性是jump,color,jumper,spots(留意这些修改是在第一个字母在属性名的环境下举办的)。固然内部确定的名字同最早的三个例子的属性名一样,在jumper中我们可以看到属性名不会强迫我们利用任何非凡的内部可变的名字(可能,真的拥有一些内部的可变的属性名)。
Bean事件的句柄是ActionEvent和KeyEvent,这是按照有关吸收器的“add”和“remove”定名要领得出的。最后我们可以留意到普通的要领croak()一直是Bean的一部门,仅仅是因为它是一个民众的要领,而不是因为它切合一些定名法则。

 

    关键字:

天才代写-代写联系方式