“你在這。”

“我想了想,決定再教你一節小課,對你很有幫助。在你從事程序員工作之前,你可能永遠不會遇到一些特殊的術語,所以我現在想向你介紹幾個常見的概念。”

“大約10 年前,Enterprise  J ava  Beans ( EJB ) 開始被廣泛使用。

“JavaBeans 是什麼意思?”

“JavaBeans 基本上就是咖啡豆的意思(Java 是咖啡的一種)。很幽默。”

“一個程序的業務邏輯採用一組高級對像或 bean 的形式,它們可以交換消息、自我保存、通過名稱查找彼此,等等。通常,這是通過一個特殊的超級對象來實現的——儘管還有其他方法,但花哨的父類。此類對象的行為受到高度監管。

“最著名的三種 EJB bean 是:”

實體 Bean是一種用於存儲特定數據的 bean。這種類型的 bean 具有將自身及其字段保存到數據庫中的內置機制。這種類型的對象可以被銷毀,然後從數據庫中重新創建。但除了存儲數據,它沒有任何邏輯。”

會話 Bean是功能性 bean。每個會話 bean 都有自己的功能。一個做一件事,另一個做另一件事。這樣的 bean 與其他對象和 bean 一起工作,而不是與它們自己的數據一起工作。”

" Session Beans分為兩類。"

無狀態會話 Bean是一種內部變量不存儲其運行所需的重要數據的 bean。這種類型的 bean 可以被銷毀然後重新創建,它將像以前一樣執行其功能。”

有狀態會話 Bean是一種在內部存儲它在工作時使用的數據的 bean。如果我們在這樣的 bean 上調用方法,那麼每個後續調用都可以使用在先前調用中傳遞給 bean 的一些數據。不過,這個 bean與常規對像不同。”

“但使用 bean 也不是那麼好,所以鐘擺很快就向相反的方向擺動。開發人員開始更頻繁地使用普通對象。他們甚至想出了一個特殊的名稱。”

POJO是一個普通的 J ava 對象。這些對像沒有任何超級函數,也沒有繼承超級對象。它們只是普通的 Java 對象。” 

“當你在實踐中了解 EJB 時,你就會明白其中的區別。粗略地說,POJO 是一把刀,而 EJB 是一把瑞士軍刀,你也可以用它來打電話。”

“有趣的比較。”

“是的,還有一件事。”

“隨著時間的推移,對象和類開始專門化。因此,開發人員確定了某些角色並為相應的對象賦予了新名稱。”

“數據傳輸對象 ( DTO ) 是為傳輸數據而創建的對象。這些對象通常有兩個要求。它們必須:a) 能夠存儲數據,b) 可序列化。換句話說,它們僅用於傳輸數據”

“您創建一個對象,將業務邏輯中所需的數據寫入其中,將其序列化為 JSON 或 XML,然後將其發送到需要去的地方。或者反過來:消息到達,您將其反序列化為 DTO 對象,並從中提取數據。”

實體是存儲在數據庫中的對象。但它們不包含任何業務邏輯。你可以說這是業務模型的數據。”

“我們還有數據訪問對象 ( DAO )。DAO 用於將對象保存到數據庫並從數據庫中檢索它們。實體不執行此操作,因為它沒有任何邏輯,所以它無法保存任何地方的任何東西。”

例子:

DAO 和實體之間的關係
UserEntity user = UserDAO.getUserById("1535");
if (user.getAge() > 18)
{
 user.setMobilization(true);
 UserDAO.save(user);
}
評論
UserEntity is a class that stores user data
UserDAO is a class that retrieves data (UserEntity objects) from the database and stores it there again after modifying it.

“目前為止就這樣了。”

“雖然這是一個小的介紹性課程,但您現在仍然無法理解更多。我們可以花幾天時間討論每個主題,也可以花數年時間討論 EJB。”

“但我希望你至少能夠想像,如果你在對話和信息、論壇或採訪中遇到這些事情,你會說些什麼。”

“嗯。謝謝你,Bilaabo。是的,我想我對專業術語了解不夠。再次,非常感謝你。”