專利名稱:程序定制方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及應(yīng)用程序的個性化定制,尤其涉及一種程序定制方法和裝置。
背景技術(shù):
在互聯(lián)網(wǎng)速度和軟件技術(shù)持續(xù)發(fā)展的當(dāng)今,C/SKlient/Server,客戶端/服務(wù) 器)、B/S (Browser/Server,瀏覽器/服務(wù)器)、Rich Client (胖客戶端)模式的架構(gòu)層出 不窮,B/S程序在免安裝部署方面以及互聯(lián)網(wǎng)應(yīng)用領(lǐng)域的應(yīng)用盡顯優(yōu)勢。C/S模式的軟件因 為其安全性、良好的用戶交互體驗(yàn)依然占據(jù)半壁江山。但是在軟件項(xiàng)目實(shí)施中,C/S的個性 化定制的靈活方便性和安全性以及軟件的健壯性一直是軟件企業(yè)在不斷探索的課題。從市面上看,C/S個性化定制主要以以下幾種方式實(shí)現(xiàn)1)針對當(dāng)前實(shí)施的項(xiàng)目 直接修改軟件的源代碼重新編譯;2)根據(jù)項(xiàng)目經(jīng)驗(yàn)的不斷抽象,定制出足夠多的開關(guān)配置 項(xiàng),盡量一份源代碼能滿足更多的客戶需求;3)將業(yè)務(wù)功能進(jìn)行組件化封裝,盡量以業(yè)務(wù) 組件裝配的方式來達(dá)到快速的,最小代碼量的定制;4)將某個或某些功能發(fā)布規(guī)范的插件 接口,項(xiàng)目定制時以插件(Plug-in)的方式完成項(xiàng)目個性化需求。以上方式在實(shí)際產(chǎn)品中可能是其中的一種或者是多種的組合形式。在第一種模式 中,定制化開發(fā)的代碼工作量是最大的;第二種模式和第三種模式隨著產(chǎn)品的不斷的抽象, 不斷的經(jīng)驗(yàn)積累,代碼量逐漸變小。但這些模式都無一例外的需要重新編譯程序,發(fā)布程 序,部署程序。第四種模式對每個功能的插件接口需要預(yù)先做出規(guī)劃,而插件本身的開發(fā)也 需要程序員的介入。程序代碼的開發(fā)集中在軟件公司的程序員身上,隨著產(chǎn)品客戶的增加,軟件公司 不得不增加程序員來滿足龐大客戶群的個性化定制需求。而程序員的成本在整個軟件項(xiàng)目 實(shí)施環(huán)節(jié)中較高,這就使得軟件的個性化定制的成本大大提高。隨著用戶對軟件個性化需 求的不斷增加,如何簡單有效地以適度開放的方法來滿足客戶的需求,同時滿足軟件公司 對于安全性和程序穩(wěn)定健壯性的需求,成為當(dāng)前軟件企業(yè)主要探索的課題。因此,需要一種程序定制方法,使應(yīng)用程序不需要重新編譯、發(fā)布和部署,便能簡 單有效地實(shí)現(xiàn)適度開放地對軟件程序進(jìn)行個性化定制,同時降低開放難度,縮短實(shí)施周期, 實(shí)現(xiàn)個性化定制的低成本,來滿足最終用戶軟件的個性化需求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明所要解決的技術(shù)問題在于,提供一種程序定制方法,使應(yīng)用程序 不需要重新編譯、發(fā)布、部署,在客戶實(shí)施現(xiàn)場,項(xiàng)目實(shí)施人員可以直接針對某個程序功能 編寫腳本語言在許可的程序切入點(diǎn)加入個性化業(yè)務(wù)邏輯或控制界面元素行為、表現(xiàn)、模式, 完成最終用戶軟件的個性化需求。本發(fā)明提供了一種程序定制方法,包括步驟102,在程序中設(shè)置切入點(diǎn),并為所 述切入點(diǎn)設(shè)置切入腳本;步驟104,使所述程序運(yùn)行至所述切入點(diǎn)時,執(zhí)行所述切入腳本。 通過該技術(shù)方案,可以使程序在運(yùn)行到切入點(diǎn)時,自動執(zhí)行預(yù)先設(shè)置好的切入腳本,為用戶提供個性化的業(yè)務(wù)邏輯或控制界面元素行為、表現(xiàn)和模式,實(shí)現(xiàn)最終用戶軟件的個性化需 求。在上述技術(shù)方案中,優(yōu)選地,在所述步驟102中,為所述切入點(diǎn)設(shè)置切入方式,所 述切入方式包括前切入和/或后切入,所述切入腳本包括對應(yīng)前切入的前切入腳本和/或 對應(yīng)后切入的后切入腳本;在所述步驟104中,所述程序運(yùn)行至所述切入點(diǎn)時,根據(jù)所述切 入方式進(jìn)行后續(xù)操作,在所述切入方式包括所述前切入時,使所述程序在執(zhí)行所述前切入 腳本后,再執(zhí)行所述切入點(diǎn)的內(nèi)置邏輯;在所述切入方式包括所述后切入時,使所述程序在 執(zhí)行所述內(nèi)置邏輯之后,再執(zhí)行所述后切入腳本。通過該技術(shù)方案,可以實(shí)現(xiàn)程序中每一個 功能或元素的個性化定制。在上述技術(shù)方案中,優(yōu)選地,在所述步驟102之前,預(yù)先制定并存儲所述切入腳 本。這樣,降低了程序定制的開發(fā)難度,縮短了程序定制的實(shí)施周期。在上述技術(shù)方案中,優(yōu)選地,在所述步驟102中,將所述切入點(diǎn)設(shè)置在所述程序的 功能和/或元素上。這樣可以保證功能中所有的元素都能被調(diào)用。通過本發(fā)明提供的程序定制方法,可以保證程序的個性化開發(fā)中系統(tǒng)的穩(wěn)定性、 安全性,降低了開發(fā)難度、縮短了實(shí)施周期、降低了軟件實(shí)施成本。本發(fā)明還提供了一種程序定制裝置,包括切入設(shè)置模塊,在程序中設(shè)置切入點(diǎn), 并為所述切入點(diǎn)設(shè)置切入腳本;切入執(zhí)行模塊,使所述程序運(yùn)行至所述切入點(diǎn)時,執(zhí)行所述 切入腳本。通過該技術(shù)方案,可以使程序在運(yùn)行到切入點(diǎn)時,自動執(zhí)行預(yù)先設(shè)置好的切入腳 本,為用戶提供個性化的業(yè)務(wù)邏輯或控制界面元素行為、表現(xiàn)和模式,實(shí)現(xiàn)最終用戶軟件的 個性化需求。在上述技術(shù)方案中,優(yōu)選地,所述切入設(shè)置模塊還為所述切入點(diǎn)設(shè)置切入方式,所 述切入方式包括前切入和/或后切入,所述切入腳本包括對應(yīng)前切入的前切入腳本和/或 對應(yīng)后切入的后切入腳本。所述程序運(yùn)行至所述切入點(diǎn)時,所述切入執(zhí)行模塊根據(jù)所述切入方式進(jìn)行后續(xù)操 作在所述切入方式包括所述前切入時,所述切入執(zhí)行模塊使所述程序在執(zhí)行所述前切入 腳本后,再執(zhí)行所述切入點(diǎn)的內(nèi)置邏輯;在所述切入方式包括所述后切入時,所述切入執(zhí)行 模塊使所述程序在執(zhí)行所述內(nèi)置邏輯之后,再執(zhí)行所述后切入腳本。通過該技術(shù)方案,可以 實(shí)現(xiàn)程序中每一個功能或元素的個性化定制。在上述技術(shù)方案中,優(yōu)選地,所述切入腳本預(yù)先制定完成并存儲。這樣,降低了程 序定制的開發(fā)難度,縮短了程序定制的實(shí)施周期。在上述技術(shù)方案中,優(yōu)選地,所述切入設(shè)置模塊將所述切入點(diǎn)設(shè)置在所述程序的 功能和/或元素上。這樣可以保證功能中所有的元素都能被調(diào)用。通過本發(fā)明提供的技術(shù)方案,可以保證程序的個性化開發(fā)中系統(tǒng)的穩(wěn)定性、安全 性,降低程序定制的開發(fā)難度、縮短實(shí)施周期、降低軟件實(shí)施的成本。
圖1示出了根據(jù)本發(fā)明的一個實(shí)施例的程序定制方法的流程圖;圖2示出了根據(jù)本發(fā)明的一個實(shí)施例的程序定制裝置的框圖;圖3示出了根據(jù)本發(fā)明的一個實(shí)施例的程序定制方法的功能切入點(diǎn)示意圖4示出了根據(jù)本發(fā)明的一個實(shí)施例的程序定制方法的切入點(diǎn)運(yùn)行流程圖;圖5示出了根據(jù)本發(fā)明的一個實(shí)施例的程序定制方法的切入模式的運(yùn)行構(gòu)架圖。
具體實(shí)施例方式為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí) 施方式對本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用其他不同于在此描述的其他方式來實(shí)施,因此,本發(fā)明并不限于下面公開的具體實(shí) 施例的限制。圖1是根據(jù)本發(fā)明的一個實(shí)施例的程序定制方法的流程圖。如圖1所示,本發(fā)明提供了一種程序定制方法,包括步驟102,在程序中設(shè)置切入 點(diǎn),并為切入點(diǎn)設(shè)置切入腳本;步驟104,使程序運(yùn)行至切入點(diǎn)時,執(zhí)行切入腳本。通過該技 術(shù)方案,可以使程序在運(yùn)行到切入點(diǎn)時,自動執(zhí)行預(yù)先設(shè)置好的切入腳本,為用戶提供個性 化的業(yè)務(wù)邏輯或控制界面元素行為、表現(xiàn)和模式,實(shí)現(xiàn)最終用戶軟件的個性化需求。在上述技術(shù)方案中,在步驟102中,為切入點(diǎn)設(shè)置切入方式,切入方式包括前切入 和/或后切入,切入腳本包括對應(yīng)前切入的前切入腳本和/或?qū)?yīng)后切入的后切入腳本; 在步驟104中,程序運(yùn)行至切入點(diǎn)時,根據(jù)切入方式進(jìn)行后續(xù)操作,在切入方式包括前切入 時,使程序在執(zhí)行前切入腳本后,再執(zhí)行切入點(diǎn)的內(nèi)置邏輯;在切入方式包括后切入時,使 程序在執(zhí)行內(nèi)置邏輯之后,再執(zhí)行后切入腳本。通過該技術(shù)方案,可以實(shí)現(xiàn)程序中每一個功 能或元素的個性化定制。在上述技術(shù)方案中,在步驟102之前,預(yù)先制定并存儲切入腳本。這樣,降低了程 序定制的開發(fā)難度,縮短了程序定制的實(shí)施周期。在上述技術(shù)方案中,在步驟102中,將切入點(diǎn)設(shè)置在程序的功能和/或元素上。這 樣可以保證功能中所有的元素都能被JavaScript腳本調(diào)用。通過本發(fā)明提供的程序定制方法,可以保證程序的個性化開發(fā)中系統(tǒng)的穩(wěn)定性、 安全性,降低了開發(fā)難度、縮短了實(shí)施周期、降低了軟件實(shí)施成本。圖2是根據(jù)本發(fā)明的一個實(shí)施例的程序定制裝置的框圖。如圖2所示,本發(fā)明還提供了一種程序定制裝置200,包括切入設(shè)置模塊202,在 程序中設(shè)置切入點(diǎn),并為所述切入點(diǎn)設(shè)置切入腳本;切入執(zhí)行模塊204,使所述程序運(yùn)行至 所述切入點(diǎn)時,執(zhí)行所述切入腳本。通過該技術(shù)方案,可以使程序在運(yùn)行到切入點(diǎn)時,自動 執(zhí)行預(yù)先設(shè)置好的切入腳本,為用戶提供個性化的業(yè)務(wù)邏輯或控制界面元素行為、表現(xiàn)和 模式,實(shí)現(xiàn)最終用戶軟件的個性化需求。在上述技術(shù)方案中,切入設(shè)置模塊202還為切入點(diǎn)設(shè)置切入方式,切入方式包括 前切入和/或后切入,切入腳本包括對應(yīng)前切入的前切入腳本和/或?qū)?yīng)后切入的后切入 腳本。在上述技術(shù)方案中,程序運(yùn)行至切入點(diǎn)時,切入執(zhí)行模塊204根據(jù)切入方式進(jìn)行 后續(xù)操作在切入方式包括前切入時,切入執(zhí)行模塊204使程序在執(zhí)行前切入腳本后,再執(zhí) 行切入點(diǎn)的內(nèi)置邏輯;在切入方式包括后切入時,切入執(zhí)行模塊204使程序在執(zhí)行內(nèi)置邏 輯之后,再執(zhí)行后切入腳本。通過該技術(shù)方案,可以實(shí)現(xiàn)程序中每一個功能或元素的個性化定制。在上述技術(shù)方案中,切入腳本預(yù)先制定完成并存儲。這樣,降低了程序定制的開發(fā) 難度,縮短了程序定制的實(shí)施周期。在上述技術(shù)方案中,切入設(shè)置模塊將切入點(diǎn)設(shè)置在程序的功能和/或元素上。這 樣可以保證功能中所有的元素都能被JavaScript腳本調(diào)用。通過本發(fā)明提供的技術(shù)方案,可以保證程序的個性化開發(fā)中系統(tǒng)的穩(wěn)定性、安全 性,降低程序定制的開發(fā)難度、縮短實(shí)施周期、降低軟件實(shí)施的成本。圖3是根據(jù)本發(fā)明的一個實(shí)施例的程序定制方法的功能切入點(diǎn)示意圖。在本實(shí)施例描述的JavaScript腳本面向功能的切入方法中,界面功能的生命周 期中任何行為、界面可視元素、不可視元素等規(guī)劃的功能點(diǎn)都可以被動態(tài)插入JavaScript 腳本運(yùn)行。功能中常用的元素包括界面可視元素包括按鈕、復(fù)選按鈕、單選按鈕、文本輸入框、列表框、下拉列表、圖 片控件、表格、樹控件、主菜單或彈出菜單、工具欄等;不可視元素包括數(shù)據(jù)集、定時器、各種業(yè)務(wù)組件等。如圖3所示,基本的功能腳本切入點(diǎn)包括功能打開302,該功能被點(diǎn)擊加載開始執(zhí)行,為其提供OnLoad切入點(diǎn);用戶交互304,包括界面可視元素1至η 為其提供OnLoad(控件被打開加載時)切 入點(diǎn)、提供OnChange (值改變時)切入點(diǎn),其中,第一個切入點(diǎn)腳本為OnLoad切入點(diǎn),切入 方式為前切入。第二個切入點(diǎn)腳本為OnChange切入點(diǎn),切入方式為前切入。第三個切入點(diǎn) 腳本為OnClose切入點(diǎn),切入方式為后切入。另外,對于界面可視元素,還提供OnFocus (獲 得焦點(diǎn)時)、OnBlur (失去焦點(diǎn)時)切入點(diǎn)、提供OnKeyDown(有按鍵時)、0nClick(鼠標(biāo)單 擊時),OnDoubleClick (鼠標(biāo)雙擊時)等切入點(diǎn)。用戶交互還包括不可視元素1至η 為其提供OnLoad(不可視元素被加載時)切 入點(diǎn);同時提供OnChange (值改變時)切入點(diǎn)。功能關(guān)閉306,為功能被關(guān)閉時提供OnClose切入點(diǎn)。每一個界面可視元素或不可視元素在被設(shè)計(jì)時,由開發(fā)人員設(shè)定好提供哪些基礎(chǔ) 的切入點(diǎn)。在每一個業(yè)務(wù)應(yīng)用功能開發(fā)時,可以根據(jù)當(dāng)前功能的實(shí)際要求屏蔽一些切入點(diǎn) 的行為以保證應(yīng)用的安全性和穩(wěn)定性。JavaScript腳本切入程序功能切入點(diǎn)的示意如圖3所示。對于每一個功能或元素的切入點(diǎn),切入方式分為前切入和后切入兩種方式。每個 切入點(diǎn)都可以被定義是否允許前切入,是否允許后切入,是否允許跳過系統(tǒng)內(nèi)置系統(tǒng)功能, 對于前切入模式,切入函數(shù)的返回值可以決定是否跳過系統(tǒng)內(nèi)置功能(被允許跳過的前 提)。每個可切入功能點(diǎn)的程序執(zhí)行為,當(dāng)運(yùn)行到切入點(diǎn)時首先判斷該切入點(diǎn)是否允許前切入(由開發(fā)人員設(shè)計(jì)時確定),如果允許前切入 并且有“前切入腳本”,則執(zhí)行前切入腳本,否則直接執(zhí)行系統(tǒng)內(nèi)置的當(dāng)前切入點(diǎn)的業(yè)務(wù)邏 輯功能;如果前切入腳本有返回值并且返回值為False,再判斷該切入點(diǎn)是否允許跳過內(nèi) 置業(yè)務(wù)邏輯(由軟件供應(yīng)商提供的開發(fā)人員開發(fā)),如果允許被跳過,則跳過內(nèi)置邏輯,否則執(zhí)行內(nèi)置邏輯。對于是否允許跳過內(nèi)置邏輯,在當(dāng)前規(guī)劃時應(yīng)該比較謹(jǐn)慎,否則可能會影 響當(dāng)前功能的健壯性;在執(zhí)行完內(nèi)置邏輯以后,判斷該切入點(diǎn)是否允許后切入,如果允許并且有“后切入 腳本”,則執(zhí)行后切入腳本。圖4是根據(jù)本發(fā)明的一個實(shí)施例的程序定制方法的切入點(diǎn)運(yùn)行流程圖。如圖4所示,實(shí)現(xiàn)JavaScript腳本面向功能的切入方法流程,包括步驟402,執(zhí)行程序到功能的切入點(diǎn);步驟404,判斷該切入點(diǎn)是否允許切入,若不允許,則執(zhí)行內(nèi)置系統(tǒng)業(yè)務(wù)邏輯,若允 許切入,則進(jìn)入下一步;步驟406,執(zhí)行前切入腳本;步驟408,判斷返回值是否為False,若不是,則執(zhí)行內(nèi)置系統(tǒng)業(yè)務(wù)邏輯,若是 False,則進(jìn)入下一步;步驟410,判斷是否允許跳過內(nèi)置邏輯,若不允許,則執(zhí)行內(nèi)置業(yè)務(wù)邏輯,若允許, 則進(jìn)入下一步;步驟412,判斷是否允許后切入,若不允許,則結(jié)束;若允許,則進(jìn)入下一步;步驟414,執(zhí)行后切入腳本。要實(shí)現(xiàn)這種JavaScript腳本面向功能的切入方法,有下面幾個重要的技術(shù)點(diǎn)需 要提前規(guī)劃和設(shè)計(jì)好功能中所有的元素(包括可視元素和不可視元素)都必須能被JavaScript腳 本調(diào)用,這根據(jù)不同的開發(fā)語言可以做不同的預(yù)案。對于C++/C/Delphi這種原生代碼語 言,可以考慮使用ActiveX控件封裝所有的元素,這樣所有可以暴露的屬性和方法都能被 JavaScript腳本以對象的方式引用。對于具有反射機(jī)制(Reflection)的使用虛擬機(jī)機(jī) 制運(yùn)行的開發(fā)語言,如Java或0#,直接使用語言本身提供的反射機(jī)制就可以訪問和控制 這些對象。具體控制到什么樣的程度通過這些對象的重新封裝或者提供代理模式(Proxy Pattern)或修飾模式(Facade Pattern)來決定。JavaScript腳本執(zhí)行引擎的選用。在C/C++/Delphi/VB項(xiàng)目中可以使用Google提 供的開源的JavaScript引擎V8,也可以使用Moz i 11 a提供的開源的Spider Monkey引擎。 在Java語言開發(fā)的項(xiàng)目中可以直接使用JDK1. 6內(nèi)置的JavaScript引擎或者使用Mozilla 提供的開源Rhino引擎。元素切入點(diǎn)的規(guī)劃,對于每個界面可視元素或不可視元素,都要預(yù)先設(shè)計(jì)好其切 入點(diǎn)及控制模式。切入點(diǎn)的規(guī)劃直接影響到系統(tǒng)的靈活性,在平臺健壯性和靈活性中,需要 架構(gòu)人員把握好一個度。個性化開發(fā)切入腳本的存儲,加載,版本控制機(jī)制,這里的版本控制不僅僅限定于 不同的最終用戶,同一個最終用戶中的不同分支機(jī)構(gòu)或部門可能都需要功能的個性化。因 此版本控制可以在一個系統(tǒng)內(nèi)部隨著機(jī)構(gòu)/角色的劃分而不同。規(guī)劃好系統(tǒng)內(nèi)置的對象類庫(Class Library),以便二次開發(fā)人員在腳本編寫中 的調(diào)用和引用。在最初的軟件版本中可能類庫并不一定會非常完備,在項(xiàng)目的不斷累積中, 類庫的功能將會隨著不斷的抽象而逐漸完備,這是一個長期的抽象過程。圖5是根據(jù)本發(fā)明的一個實(shí)施例的的程序定制方法的切入模式的運(yùn)行構(gòu)架圖。
如圖5所示,在本實(shí)施例中,切入JavaScript腳本506的運(yùn)行是在JavaScript引 擎502基礎(chǔ)上通過平臺JavaScript類庫504提供的類和系統(tǒng)API來完成與程序功能邏輯 508及界面的互動的,任何涉及到操作系統(tǒng)安全性的系統(tǒng)API都應(yīng)該被屏蔽。通過本發(fā)明提供的JavaScript腳本切入功能的方法,在項(xiàng)目實(shí)施時給個性化開 發(fā)帶來較高的安全性,縮短了實(shí)施周期,降低了軟件實(shí)施成本,具體為保證了系統(tǒng)的穩(wěn)定性軟件開發(fā)商提供的每一個功能是獨(dú)立完備的,由軟件開發(fā) 商提供最基本完善的功能,二次開發(fā)(項(xiàng)目個性化開發(fā))只是在原有功能的基礎(chǔ)進(jìn)行個性 化定制,在保證主流程順利執(zhí)行的前提下進(jìn)行小范圍的控制和功能邏輯插入。保證了系統(tǒng)的安全性由于提供的腳本切入機(jī)制只能訪問系統(tǒng)所允許的有限資 源,對于操作系統(tǒng)的安全性以及軟件系統(tǒng)的安全性都不會構(gòu)成威脅。同時也不會對軟件開 發(fā)商的許可保護(hù)(License)有影響。降低了開發(fā)難度使用系統(tǒng)提供的豐富類庫以及使用語法相對比較簡單的 JavaScript腳本大大降低了系統(tǒng)的開發(fā)難度。同時,主功能/主流程已經(jīng)由軟件開發(fā)商完 成,項(xiàng)目實(shí)施人員(二次開發(fā)人員)只是在其基礎(chǔ)上進(jìn)行個性化的修改,所要求的開發(fā)能力 也大幅降低??s短了實(shí)施周期傳統(tǒng)的軟件項(xiàng)目的實(shí)施是將無法通過參數(shù)定制化的需求反饋到 軟件開發(fā)商程序員,由程序員修改代碼后重新編譯程序,發(fā)布版本或補(bǔ)丁,通過系列的控制 之后才發(fā)布到項(xiàng)目實(shí)施者手中進(jìn)行安裝實(shí)施,流程周期較長。降低了軟件實(shí)施成本開發(fā)商程序員的工資收入普遍比實(shí)施人員的工資高,這是 一個現(xiàn)狀,將開發(fā)的所有能力集中在開發(fā)商程序員手上,提高了項(xiàng)目的成本。并且隨著項(xiàng)目 的增多或者客戶數(shù)的逐漸累積,開發(fā)工作量不斷加大,軟件開發(fā)商不得不招聘大量的程序 來滿足客戶不斷的個性化需求,這成本是十分昂貴的。通過將個性化定制開發(fā)的能力“下 放”到項(xiàng)目實(shí)施人員手中,培訓(xùn)項(xiàng)目實(shí)施人員一定的JavaScript開發(fā)能力,無疑將大大縮減 開發(fā)成本以及提高人均創(chuàng)效。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種程序定制方法,其特征在于,包括步驟102,在程序中設(shè)置切入點(diǎn),并為所述切入點(diǎn)設(shè)置切入腳本; 步驟104,使所述程序運(yùn)行至所述切入點(diǎn)時,執(zhí)行所述切入腳本。
2.根據(jù)權(quán)利要求1所述的程序定制方法,其特征在于,在所述步驟102中,為所述切入 點(diǎn)設(shè)置切入方式,所述切入方式包括前切入和/或后切入,所述切入腳本包括對應(yīng)前切入 的前切入腳本和/或?qū)?yīng)后切入的后切入腳本;在所述步驟104中,所述程序運(yùn)行至所述切入點(diǎn)時,根據(jù)所述切入方式進(jìn)行后續(xù)操作, 在所述切入方式包括所述前切入時,使所述程序在執(zhí)行所述前切入腳本后,再執(zhí)行所 述切入點(diǎn)的內(nèi)置邏輯,在所述切入方式包括所述后切入時,使所述程序在執(zhí)行所述內(nèi)置邏輯之后,再執(zhí)行所 述后切入腳本。
3.根據(jù)權(quán)利要求2所述的程序定制方法,其特征在于,在所述步驟102中,設(shè)置預(yù)定值, 用于確定是否使所述程序執(zhí)行所述內(nèi)置邏輯;在所述步驟104中,執(zhí)行所述前切入腳本后,根據(jù)所述前切入腳本的返回值與所述預(yù) 定值的比較,判斷是否使所述程序執(zhí)行所述內(nèi)置邏輯,在確定使所述程序不執(zhí)行所述內(nèi)置邏輯,且所述切入方式包括所述后切入時,使所述 程序執(zhí)行所述后切入腳本。
4.根據(jù)權(quán)利要求1所述的程序定制方法,其特征在于,在所述步驟102之前,預(yù)先制定 并存儲所述切入腳本。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的程序定制方法,其特征在于,在所述步驟102 中,將所述切入點(diǎn)設(shè)置在所述程序的功能和/或元素上。
6.一種程序定制裝置,其特征在于,包括切入設(shè)置模塊,在程序中設(shè)置切入點(diǎn),并為所述切入點(diǎn)設(shè)置切入腳本; 切入執(zhí)行模塊,使所述程序運(yùn)行至所述切入點(diǎn)時,執(zhí)行所述切入腳本。
7.根據(jù)權(quán)利要求6所述的程序定制裝置,其特征在于,所述切入設(shè)置模塊還為所述切 入點(diǎn)設(shè)置切入方式,所述切入方式包括前切入和/或后切入,所述切入腳本包括對應(yīng)前切 入的前切入腳本和/或?qū)?yīng)后切入的后切入腳本;所述程序運(yùn)行至所述切入點(diǎn)時,所述切入執(zhí)行模塊根據(jù)所述切入方式進(jìn)行后續(xù)操作, 在所述切入方式包括所述前切入時,所述切入執(zhí)行模塊使所述程序在執(zhí)行所述前切入 腳本后,再執(zhí)行所述切入點(diǎn)的內(nèi)置邏輯,在所述切入方式包括所述后切入時,所述切入執(zhí)行模塊使所述程序在執(zhí)行所述內(nèi)置邏 輯之后,再執(zhí)行所述后切入腳本。
8.根據(jù)權(quán)利要求7所述的程序定制裝置,其特征在于,所述切入設(shè)置模塊還設(shè)置預(yù)定 值,用于確定是否使所述程序執(zhí)行所述內(nèi)置邏輯;執(zhí)行所述前切入腳本后,所述切入執(zhí)行模塊還根據(jù)所述前切入腳本的返回值與所述預(yù) 定值的比較,判斷是否使所述程序執(zhí)行所述內(nèi)置邏輯,在確定使所述程序不執(zhí)行所述內(nèi)置邏輯,且所述切入方式包括所述后切入時,所述切 入模塊使所述程序執(zhí)行所述后切入腳本。
9.根據(jù)權(quán)利要求6所述的程序定制裝置,其特征在于,所述切入腳本預(yù)先制定完成并存儲。
10.根據(jù)權(quán)利要求6至9中任一項(xiàng)所述的程序定制裝置,其特征在于,所述切入設(shè)置模 塊將所述切入點(diǎn)設(shè)置在所述程序的功能和/或元素上。
全文摘要
本發(fā)明提供了一種程序定制方法,包括步驟102,在程序中設(shè)置切入點(diǎn),并為所述切入點(diǎn)設(shè)置切入腳本;步驟104,使所述程序運(yùn)行至所述切入點(diǎn)時,執(zhí)行所述切入腳本。本發(fā)明還提供了一種程序定制裝置。根據(jù)本發(fā)明提供的技術(shù)方案,可以使應(yīng)用程序不需要重新編譯、發(fā)布、部署,便能簡單有效地實(shí)現(xiàn)適度開放地對軟件程序進(jìn)行個性化定制,同時降低開放難度,縮短實(shí)施周期,實(shí)現(xiàn)個性化定制的低成本,來滿足最終用戶軟件的個性化需求。
文檔編號G06F9/44GK102004648SQ201010607750
公開日2011年4月6日 申請日期2010年12月27日 優(yōu)先權(quán)日2010年12月27日
發(fā)明者陳勝望 申請人:用友軟件股份有限公司