2009-12-29 38 views
28

Tên thực sự ném tôi đi. Tôi hy vọng ai đó có thể giải thích nó trong một cách mà tôi sẽ không quên :)"Hạt Java" là gì?

+2

http://en.wikipedia.org/wiki/JavaBean –

+0

Câu hỏi có thể được mở rộng thành - tại sao "đậu" trong tên JavaBean. Làm thế nào họ sở hữu bất kỳ tài sản để "đậu"? Không chắc chắn mặc dù nó sẽ làm tăng xác suất của câu hỏi nhận được đóng cửa nói rằng "không lập trình liên quan" – Xinus

+2

Tại sao Sun luôn luôn hiển thị hạt cà phê trong khi họ thị trường JavaBeans? Ngoài ra tại sao "tách trà" để tiếp thị Java. – Xinus

Trả lời

29

Bất kỳ lớp java tuần tự nào (triển khai thực hiện java.io.Serializable) theo các quy ước cụ thể: một hàm tạo không đối số và các thuộc tính có thể truy cập thông qua get/set/accessors.

Ý tưởng là làm cho nó có thể dự đoán được, do đó các thuộc tính vv có thể được phát hiện tự động thông qua sự phản chiếu - giúp đỡ rất nhiều trong phát triển công cụ và khung công tác.

+2

Đậu không cấu thành thiết kế OO rất thanh lịch vì nó về bản chất là một cấu trúc dữ liệu mà không có bất kỳ hành vi nào, và nó hoàn toàn lộ ra nội bộ của nó. Xem thiết kế theo hướng miền: http://en.wikipedia.org/wiki/Domain-driven_design và http://domaindrivendesign.org/resources/what_is_ddd Điều đó nói rằng, hầu hết các mẫu thiết kế dựa vào các lớp giống như đậu để đại diện cho mô hình của chúng vì vậy nó là cách tiêu chuẩn thực tế để tiếp cận điều này. –

+3

Không tôn trọng DDD không có nghĩa là nó không phải là "thiết kế OO thanh lịch". Nó không giống như Eric Evans sở hữu các khái niệm về các đối tượng. Thực tế là, nếu bạn muốn tạo ra một lưới dữ liệu (một gui thông thường, được cho là không thanh lịch) và không làm cho các đối tượng miền của bạn nhận thức được nó, các thuộc tính là thanh lịch như nó được. – fdreger

+0

Không có gì trong JavaBeans, theo định nghĩa hay quy ước, nói rằng chúng là "một cấu trúc dữ liệu không có bất kỳ hành vi nào". Trên thực tế, có [giao diện chuẩn] (https://docs.oracle.com/javase/7/docs/api/java/beans/AppletInitializer.html) để giúp tạo nhanh "JavaBeans cũng là Applet", và tôi nghĩ tất cả chúng ta đều có thể đồng ý rằng Applet có hành vi! – Ssswift

10

http://en.wikipedia.org/wiki/JavaBean

JavaBeans là những thành phần phần mềm tái sử dụng cho Java mà có thể được thao tác trực quan trong một công cụ xây dựng. Thực tế, chúng là các lớp được viết bằng ngôn ngữ lập trình Java phù hợp với một quy ước cụ thể. Chúng được sử dụng để đóng gói nhiều đối tượng vào một đối tượng duy nhất (bean), để chúng có thể được truyền xung quanh như một đối tượng bean đơn thay vì là nhiều đối tượng riêng lẻ. JavaBean là một đối tượng Java có thể tuần tự hóa, có một hàm tạo null và cho phép truy cập vào các thuộc tính bằng cách sử dụng các phương thức getter và setter.

continue reading »

alt text http://www.javalobby.org/articles/j2me-in-a-nutshell/CoffeeBeanSingle.jpg

+4

Esko, khi câu hỏi này đơn giản, tôi không thấy tác hại trong trích dẫn Wikipedia. – Sampson

4

Một bean java là một lớp học đó là serializable, có một constructor không có đối số, và sử dụng getter và setter cho các trường thành viên của nó. Nó được sử dụng trong Java Enterprise Apps để lưu trữ dữ liệu logic nghiệp vụ.

7

Sun's JavaBean Tutorial says...

Các JavaBeans ™ kiến ​​trúc được dựa trên một mô hình thành phần cho phép các nhà phát triển> tạo các đơn vị phần mềm được gọi thành phần. Các thành phần là các đơn vị phần mềm có thể tái sử dụng, có thể được lắp ráp trực quan vào các thành phần phức hợp, các applet, các ứng dụng và các servlet sử dụng các công cụ xây dựng ứng dụng trực quan. Các thành phần JavaBean được gọi là bean.

Một tập hợp các API mô tả mô hình thành phần cho một ngôn ngữ cụ thể. Đặc tả API JavaBeans cụ thể hóa việc xây dựng chi tiết cốt lõi cho kiến ​​trúc thành phần JavaBeans.

Đậu năng động ở chỗ chúng có thể được thay đổi hoặc tùy chỉnh. Thông qua chế độ thiết kế của một công cụ xây dựng, bạn có thể sử dụng cửa sổ Properties của bean để tùy chỉnh bean và sau đó lưu (persist) bean của bạn bằng cách sử dụng thao tác trực quan. Bạn có thể chọn một bean từ hộp công cụ, thả nó vào một form, thay đổi diện mạo và hành vi của nó, xác định tương tác của nó với các bean khác và kết hợp nó với các bean khác vào applet, application hoặc bean mới.

Nếu bạn đã sử dụng 'nút' của Swing, thì bạn đã sử dụng một thành phần (JavaBean hiển thị). Bạn có thể sử dụng các công cụ dành cho nhà phát triển (như NetbeansIDE) để thay đổi các thuộc tính có sẵn của Bean. Netbeans sử dụng một cái gì đó gọi là 'mẫn' để khám phá JavaBean tính thể được sửa đổi bởi các coder/user (ví dụ tên, văn bản tiêu đềalignment cho một thành phần JavaBean Swing Button). Bạn có thể lưu trạng thái của nó quá (nhà phát triển IDE/Beans có thể sử dụng 'serialization' để làm điều này) cho phép tái sử dụng với các thiết lập ưa thích của bạn một lần khác.

JavaBeans không cần hiển thị (như thành phần xoay).Bạn có thể tạo JavaBean của riêng bạn để mã hóa văn bản trong hộp văn bản khi ai đó nhấp vào nút 'OK' trên biểu mẫu. Bạn không thấy JavaBean được viết tùy chỉnh của mình, nhưng một số nhà phát triển khác có thể tái sử dụng JavaBean 'mã hóa' của bạn trong mã của họ với một số thay đổi 'thuộc tính' mà bạn đã cho phép công khai (tức là loại mã hóa = "blowfish").

Kính trọng, SteJav

6

JavaBeans là tái sử dụng phần mềm viết bằng java.The thành phần có thể được cấu hình và kết nối sử dụng xây dựng tools.Three tính then chốt gây ra bất kỳ lớp trong java để trở thành một JavaBean là

1.Class is serializable 
2.class has a 0 argument constructor 
3.class has getter and setter methods for data members 

đây là một lớp đơn giản đó là đủ điều kiện để trở thành một JavaBean

import java.io.*; 

public class Student implements Serializable { 

    private String name = null; 

    //0 argument constructor 
    public Student() { 
    } 
    //getter method 
    public String getName() { 
     return name; 
    } 
    //settor method 
    public void setName(final String name) { 
     this.name = value; 
    } 

} 
2

một JavaBean là một Java phản đối rằng đáp ứng dưới đây ước lập trình:

lớp
  1. Các JavaBean phải thực hiện giao diện Serializable
  2. Lớp JavaBean phải có một không-arg constructor mà phải được công khai
  3. Tất cả các thuộc tính JavaBean phải có Setter công cộng và phương pháp Getter để thiết lập và nhận tất cả các thuộc tính bean.
  4. Tất cả các biến cá thể JavaBean phải là riêng tư và chỉ có thể truy cập bằng Getter và setter.