• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      周志明

      (廣西大學(xué)計(jì)算機(jī)與電子信息學(xué)院,南寧 530004)

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

      周志明

      (廣西大學(xué)計(jì)算機(jī)與電子信息學(xué)院,南寧 530004)

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

      策略模式;Spring框架

      0 引言

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

      1 策略模式

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

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

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

      2 Spring框架

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

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

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

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

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

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

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

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

      /**

      *與第三方合作單位交互策略訪問(wèn)入口

      *@author zhouzhiming

      *

      */

      public interface CommunicateWithThdService{

      /**

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

      *@param reqMap

      *@return

      */

      publicMap msgToThd(MapreqMap);}

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

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

      *@author zhouzhiming

      */

      public class CommunicateWithThdServiceImplDFDJ implements CommunicateWithThdService{

      @Override

      public MapmsgToThd(MapreqMap){

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

      return null;

      }

      }

      /**

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

      *@author zhouzhiming

      */

      public class CommunicateWithThdServiceImplSFDJ implements CommunicateWithThdService{

      @Override

      public MapmsgToThd(MapreqMap){

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

      return null;

      }

      }

      并在Spring框架下的bean定義中,配置這兩個(gè)策略的實(shí)例,如下:

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

      /**

      *實(shí)例工廠

      *@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é)點(diǎn)中,基于約定優(yōu)于配置的原則,根據(jù)約定好的策略規(guī)則,根據(jù)約定的業(yè)務(wù)類型(busType)尋找實(shí)現(xiàn)類,進(jìn)行相應(yīng)的業(yè)務(wù)邏輯處理,即可實(shí)現(xiàn)不同的繳費(fèi)業(yè)務(wù),分別與對(duì)應(yīng)的合作單位進(jìn)行交互通訊,實(shí)現(xiàn)如下:

      /**

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

      *@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é)語(yǔ)

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

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

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

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

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

      [5]約翰遜.Spring框架高級(jí)編程[M].機(jī)械工業(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-),男,湖南祁東人,本科,中級(jí),研究方向?yàn)橛?jì)算機(jī)技術(shù)

      2017-06-15

      2017-08-30

      猜你喜歡
      實(shí)例組件框架
      無(wú)人機(jī)智能巡檢在光伏電站組件診斷中的應(yīng)用
      能源工程(2022年2期)2022-05-23 13:51:50
      框架
      廣義框架的不相交性
      新型碎邊剪刀盤(pán)組件
      U盾外殼組件注塑模具設(shè)計(jì)
      WTO框架下
      法大研究生(2017年1期)2017-04-10 08:55:06
      一種基于OpenStack的云應(yīng)用開(kāi)發(fā)框架
      風(fēng)起新一代光伏組件膜層:SSG納米自清潔膜層
      完形填空Ⅱ
      完形填空Ⅰ
      客服| 莒南县| 平定县| 扎囊县| 新乡市| 班戈县| 沈阳市| 马龙县| 林甸县| 南郑县| 游戏| 迁西县| 浮梁县| 东明县| 南溪县| 金昌市| 屏东市| 谢通门县| 竹北市| 洛浦县| 台南市| 邯郸县| 巴马| 盐池县| 伽师县| 崇信县| 拜城县| 从江县| 贵州省| 鄂州市| 东乡县| 乌兰察布市| 准格尔旗| 交口县| 屏边| 铜川市| 兖州市| 伊金霍洛旗| 普洱| 大化| 德庆县|