核心技術(shù):JSR296(靜悄悄的革命)

字號:

本文將討論JSR 296及能為我們帶來什么,考試大提示需要哪些改進。
    Swing應用框架(簡稱SAF)把基礎(chǔ)的Swing應用開發(fā)流和樣板文件包送到成熟的模板模式中,在大部分初始化和國際化進程中使用依賴注入。該架構(gòu)提供的支持有:
    ● 應用程序生命周期: 應用程序啟動和重要組成部分的創(chuàng)建。主要面板,工具欄和狀態(tài)欄現(xiàn)在通過模板設(shè)計模式控制。此外,應用退出由ExitListeners控制,每個監(jiān)聽在退出之前都會被詢問是否能夠退出,這就程序會在用戶退出時詢問是否保存文件并要用戶確認操作。監(jiān)聽才接收退出命令,并執(zhí)行退出。
    ● 限定動作:創(chuàng)建動作對象源自POJO模式。通過@Action的注釋及聲明,任何模式都能成為動作對象。動作對象的屬性定義其功能和選定的狀態(tài)。如果該模式接受任何參數(shù),當它作為一個動作時,一個參數(shù)注釋可以用來指定把什么傳送給此模式。該模式不返回或如果需要在背景下工作,它可以返回一個任務對象。
    ● 異步任務執(zhí)行和監(jiān)測:SwingWorkver終于用Java 6發(fā)表了 ,它已經(jīng)允許異步工作,監(jiān)測進展情況,分析大量數(shù)據(jù)中的信息等等。任務通過增加信息的概念描述,按照模板模式設(shè)計(如,例外操作,成功操作,清除)實施完成的模式,簡化了所有這些功能。此外,它以事件的方式把各種SwingWorker發(fā)送到指定事件監(jiān)測,允許代碼重復使用以提供正在運行任務的細節(jié)(例如,一個統(tǒng)一的進度對話)。兩個額外的巨大功能包括通過任務監(jiān)測服務,監(jiān)測背景下所有正在執(zhí)行的任務,以及任務正在執(zhí)行時,選擇禁用適用范圍的用戶界面。
    ● 國際化支持:國際化始終是用戶界面開發(fā)的難題。SAF有助于把所有國際參數(shù)置于代碼之外。這些被設(shè)定在一個屬性文件中,如ResourceBundle.但SAF使用文件名協(xié)議和依賴注入免費為開發(fā)者處理這些問題。此外,它利用Action設(shè)置文本,圖標和其他屬性。它還利用了Task用國際化的方式設(shè)定發(fā)出的郵件。其結(jié)果是,經(jīng)設(shè)定這些功能后,你幾乎在應用程序中看不到國際化的代碼。
    ● 會話狀態(tài)存儲:在磁盤中保存應用程序的會話狀態(tài),并在應用程序重啟時重新加載。這由生命周期管理自動完成,但是也可以用于節(jié)省不同狀態(tài)項目和用戶界面狀態(tài)。
    評論:
    ● “啟用”和“選擇”屬性有更復雜的限定選擇:允許連鎖限定,如“file.isDirectory”,并允許運算符的使用,“itemsCount>3”或“!isDirectory”。
    ● 通過屬性文件限定動作:因為我可以限定幾乎所有的動作特性或元件,所以為什么不能在這兩者之間呢?我愿意寫 “l(fā)abel1.action = [ MyActions.class ,sayHello ] ”來解決它。
    ● 用不同的參數(shù)為不同的模式限定動作:該架構(gòu)允許使用@Action.Parameter注釋,通過參數(shù)限制模式的動作。如果還能夠允許限定指定動作,允許每一個指定動作有自己的參數(shù)設(shè)定就更好了。其實,可能會有一列可供選擇的@Action.參數(shù)被放置到@Action注釋中,并能夠用它多次注釋一個模式。
    從許多方面來看,這一架構(gòu)在去掉了很多創(chuàng)建好的樣板文件的同時,也發(fā)展了用戶界面應用程序,并把它們的質(zhì)量提高到了更易于升級的新層次。