国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于策略模式和Spring框架的銀行代繳費系統(tǒng)的研究

2017-10-18 07:03:40周志明
現(xiàn)代計算機 2017年25期
關(guān)鍵詞:實例組件框架

周志明

(廣西大學計算機與電子信息學院,南寧 530004)

基于策略模式和Spring框架的銀行代繳費系統(tǒng)的研究

周志明

(廣西大學計算機與電子信息學院,南寧 530004)

代繳費業(yè)務(wù)作為銀行重要的中間代理業(yè)務(wù),合作單位多,影響范圍廣,推廣實效要求高,對相關(guān)信息系統(tǒng)的架構(gòu)設(shè)計和開發(fā)實現(xiàn)提出很高的要求,如何能在短時間內(nèi)完成系統(tǒng)的敏捷開發(fā),實現(xiàn)相關(guān)功能,短平快地支撐業(yè)務(wù)的發(fā)展和推廣,是銀行目前最為迫切的需求。著重介紹策略模式和Spring框架的結(jié)合在銀行代繳費應(yīng)用上的實現(xiàn),通過剖析策略模式原理和具體在代繳費業(yè)務(wù)場景中的實際運用,重點研究通過策略模式和Spring框架,如何升華面向接口的方法和技巧,從而構(gòu)建高效、簡單、高內(nèi)聚、松耦合的銀行代繳費業(yè)務(wù)應(yīng)用系統(tǒng)。

策略模式;Spring框架

0 引言

銀行代繳費業(yè)務(wù),指銀行代理第三方合作單位開展的如水、電、煤、話費等領(lǐng)域的代理繳費業(yè)務(wù)。過去傳統(tǒng)的實現(xiàn)方式,是針對每一個代繳費業(yè)務(wù),實現(xiàn)一套系統(tǒng),隨著業(yè)務(wù)開展的增多,開發(fā)人員工作量、系統(tǒng)資源的占用量、運維人員的維護量也隨之增加,同時業(yè)務(wù)無法在短時間內(nèi)實現(xiàn)快速上線推廣。這就要求銀行需要優(yōu)化系統(tǒng)的架構(gòu)設(shè)計,通過設(shè)計模式的運用和相關(guān)技術(shù)的創(chuàng)新,使得各項代繳業(yè)務(wù)功能能夠進行整合,讓業(yè)務(wù)流程組件化,使各組件復用程度更高,系統(tǒng)資源占用更小,開發(fā)推廣時間更短,運維更加簡便。因此通過策略模式結(jié)合Spring框架的運用,可以實現(xiàn)系統(tǒng)架構(gòu)優(yōu)化,業(yè)務(wù)流程組件化,通過業(yè)務(wù)流程模版組裝,針對處理邏輯相同的流程節(jié)點,可復用已有組件,針對特殊流程節(jié)點,通過策略模式進行路由,以實現(xiàn)業(yè)務(wù)邏輯處理中,組件的高復用性和高拓展性,從而達到構(gòu)建高效、簡單、高內(nèi)聚、松耦合的銀行代繳費業(yè)務(wù)應(yīng)用系統(tǒng)的目的。

1 策略模式

策略模式,即將一系列算法進行封裝,通過向上層暴露的接口,進行特定算法實現(xiàn)的訪問。算法的選擇和指向是根據(jù)特定策略完成,從而能夠?qū)崿F(xiàn)基于不同的策略,可通過統(tǒng)一的訪問方式,獲取不同的算法的實現(xiàn)[1]。

策略模式設(shè)計如圖1所示,具體為:定義一個Strategy的接口,用以規(guī)范算法實現(xiàn)的調(diào)用入口。具體的策略算法類需實現(xiàn)Strategy接口,如OperationAdd是Strategy的一個具體實現(xiàn)類,包含了接口約定方法doOperation的具體實現(xiàn)。主程序StrategyPatternDemo,擁有Strategy句柄,通過context調(diào)用具體的算法實現(xiàn)。

圖1 策略模式設(shè)計圖

2 Spring框架

Spring框架是為了降低軟件開發(fā)的復雜性而創(chuàng)建的。其最核心的部分即提供了依賴注入(Dependency Injection)特征來實現(xiàn)容器對系統(tǒng)所依賴的組件實例進行統(tǒng)一的管理。通過控制反轉(zhuǎn)和依賴注入實現(xiàn)主動向接口句柄輸送具體的實現(xiàn)類。為了能更方便地獲取具體的策略實現(xiàn),使用了Spring框架對具體的策略實現(xiàn)實例進行統(tǒng)一地管理[5]。

3 架構(gòu)設(shè)計

以銀行代理繳費業(yè)務(wù)系統(tǒng),繳費記賬功能為例進行系統(tǒng)架構(gòu)設(shè)計。繳費記賬流程如圖2所示:

可見,在一個繳費記賬的功能流程中,大多數(shù)的流程節(jié)點均可以被復用,只有前置處理以及與第三方合作單位進行交互時,需要執(zhí)行特殊業(yè)務(wù)邏輯,因此可以在執(zhí)行特殊業(yè)務(wù)邏輯時,加入策略模式的應(yīng)用,而其他流程則可復用公共組件,以此降低開發(fā)運維成本、系統(tǒng)資源。未來新增業(yè)務(wù)時,便可拓展策略的實現(xiàn),即可實現(xiàn)業(yè)務(wù)的快速推廣上線。

4 應(yīng)用實現(xiàn)

為了能夠在可拓展的業(yè)務(wù)流程節(jié)點中,加入策略模式,為此,需要完成如下幾點:

(1)確定策略決定的關(guān)鍵要素,即具體特殊算法的尋找和定位的依據(jù)。在代繳費業(yè)務(wù)記賬功能中,我們以代繳費業(yè)務(wù)的業(yè)務(wù)類型編號作為決定策略的關(guān)鍵要素。例如:電費代繳的業(yè)務(wù)類型編號為:DFDJ,水費代繳的業(yè)務(wù)類型編號為SFDJ等。

(2)定義具體策略實現(xiàn)的訪問接口,以規(guī)范訪問的入口。例如:為與合作第三方單位交互定義一個策略訪問接口,代碼如下:

/**

*與第三方合作單位交互策略訪問入口

*@author zhouzhiming

*

*/

public interface CommunicateWithThdService{

/**

*向第三方單位發(fā)送信息

*@param reqMap

*@return

*/

publicMap msgToThd(MapreqMap);}

(3)策略的實現(xiàn),在CommunicateWithThdServie接口的實現(xiàn)類中,實現(xiàn)與第三方通訊的業(yè)務(wù)邏輯,例如電費代繳和水費代繳分別對應(yīng)了兩個策略實現(xiàn)類,如下:/**

*電費代繳與第三方單位系統(tǒng)交互實現(xiàn)類

*@author zhouzhiming

*/

public class CommunicateWithThdServiceImplDFDJ implements CommunicateWithThdService{

@Override

public MapmsgToThd(MapreqMap){

System.out.println("與供電局系統(tǒng)進行交互");

return null;

}

}

/**

*水費代繳與第三方單位系統(tǒng)交互實現(xiàn)類

*@author zhouzhiming

*/

public class CommunicateWithThdServiceImplSFDJ implements CommunicateWithThdService{

@Override

public MapmsgToThd(MapreqMap){

System.out.println("與水務(wù)公司系統(tǒng)進行交互");

return null;

}

}

并在Spring框架下的bean定義中,配置這兩個策略的實例,如下:

(4)定義實例工廠。為了更方便地在策略處理節(jié)點中,獲取具體的策略實現(xiàn)實例,因此需定義實例工廠BeanFactory,并在Spring的bean配置文件中定義,如下:

/**

*實例工廠

*@author zhouzhiming

*@since 1.0.0

*/

public class BeanFactory implements ApplicationContextAware{

private static ApplicationContext applicationContext;

public void setApplicationContext(ApplicationContext con?text){

applicationContext=context;

}

public static Object get(Class beanType){

return applicationContext.getBean(beanType);

}

public static Object get(String beanName){

return applicationContext.getBean(beanName);

}

}

(5)策略節(jié)點中,基于約定優(yōu)于配置的原則,根據(jù)約定好的策略規(guī)則,根據(jù)約定的業(yè)務(wù)類型(busType)尋找實現(xiàn)類,進行相應(yīng)的業(yè)務(wù)邏輯處理,即可實現(xiàn)不同的繳費業(yè)務(wù),分別與對應(yīng)的合作單位進行交互通訊,實現(xiàn)如下:

/**

*與第三方交互節(jié)點選取策略

*@param context

*@throws CoreException

*@throws CoreRuntimeException

*/

public void execute(Context context)throws CoreException,Core?RuntimeException{

String busType=context.getData("busType");

String procBeanName="communicateWithThdServiceIm?pl"+busType;

String inputJsonStr=context.getData("input");

MapreqMap=null;

if(!StringUtils.isEmpty(inputJsonStr)){

reqMap = JsonUtils.objectFromJson(inputJsonStr,Map.class);

if(!CollectionUtils.isEmpty(reqMap)){

context.setDataMap(reqMap);

}

}

CommunicateWithThdService communicateWithThdSer?vice =(CommunicateWithThdService) BeanFactory.get(proc?BeanName);

MaprspMap=communicateWithThdSer?vice.msgToThd(reqMap);

if(!CollectionUtils.isEmpty(rspMap)){

String outputJsonStr=new String(JsonUtils.json?FromObject(rspMap,"UTF8"));

context.setData("output",outputJsonStr);

}

}

5 結(jié)語

通過策略模式和Spring框架的結(jié)合,基于約定優(yōu)于配置的原則,構(gòu)建高效、簡單、高內(nèi)聚、松耦合的銀行代繳費業(yè)務(wù)應(yīng)用系統(tǒng),增強了系統(tǒng)組件的復用性和拓展性,統(tǒng)一了業(yè)務(wù)實現(xiàn)模式,降低了開發(fā)運維工作量,減小系統(tǒng)資源的占用,使產(chǎn)品得以實現(xiàn)敏捷開發(fā),快速推廣。

[1]秦小波.設(shè)計模式之禪[M].機械工業(yè)出版社,2014.

[2]Eckel B.Thinking in Java,4th Edition[M].2005,117(667):212.

[3]ErichGamma,加馬,李英軍.設(shè)計模式:可復用面向?qū)ο筌浖幕A(chǔ)[M].2000.

[4]Cornell,Gary.Java核心技術(shù)[M].人民郵電出版社,2008.

[5]約翰遜.Spring框架高級編程[M].機械工業(yè)出版社,2006.

Abstract:Payment service as an important intermediate business of bank,with a wide range of cooperative units,big effectiveness and high require?ment of promotion,requests high demands for the relevant architecture design and development of information system.How to complete the agile development of system in a short period of time,implement relevant functions and support the development and promotion of the business,is currently the most urgent needs of bank.Focuses on the combination of strategy pattern and Spring framework in the bank payment system,and the research by strategy pattern and Spring framework by analyzing the principle and application of strategy pattern in payment business scenarios.Finds how to promote the methods and skills of interface oriented,to build efficient,simple,high cohesion and loose coupling of the bank payment application system.

Keywords:Strategy Patterns;Spring Framework

Research on the Banking Payment System Based on Strategy Patterns and Spring Framework

ZHOU Zhi-ming
(School of Computer and Electronic Information,Guangxi University,Nanning 530004)

1007-1423(2017)25-0073-04

10.3969/j.issn.1007-1423.2017.25.018

周志明(1989-),男,湖南祁東人,本科,中級,研究方向為計算機技術(shù)

2017-06-15

2017-08-30

猜你喜歡
實例組件框架
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
能源工程(2022年2期)2022-05-23 13:51:50
框架
廣義框架的不相交性
新型碎邊剪刀盤組件
重型機械(2020年2期)2020-07-24 08:16:16
U盾外殼組件注塑模具設(shè)計
WTO框架下
法大研究生(2017年1期)2017-04-10 08:55:06
一種基于OpenStack的云應(yīng)用開發(fā)框架
風起新一代光伏組件膜層:SSG納米自清潔膜層
太陽能(2015年11期)2015-04-10 12:53:04
完形填空Ⅱ
完形填空Ⅰ
会宁县| 阳江市| 酉阳| 清镇市| 兴城市| 日喀则市| 崇义县| 祁连县| 登封市| 奉贤区| 马山县| 凤城市| 都江堰市| 恭城| 青河县| 兴海县| 浪卡子县| 会宁县| 堆龙德庆县| 缙云县| 九江县| 象山县| 滦南县| 曲水县| 深圳市| 齐齐哈尔市| 吕梁市| 札达县| 涡阳县| 汉源县| 大同县| 乃东县| 密山市| 松潘县| 花莲县| 张家港市| 大英县| 潮安县| 武冈市| 鄄城县| 江源县|