亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SpringMVC項目里,有必要使用一些設計模式嗎?

SpringMVC項目里,有必要使用一些設計模式嗎?

慕的地6264312 2019-05-21 10:53:24
背景為了兼容多種業務,想在項目中使用一些設計模式,以便于管理。例如,我需要創建用戶并返回userid,每種業務創建的方式都不一樣。我選取了“適配器模式”,但是我發現,在springmvc的管理下,常常需要new一些類,這時候,在這個類里的一些spring標簽,卻失效了。以下是我創建用戶的代碼:接口publicinterfaceIPlatformSendPay{publicabstractObjectsendPayInA(Objectobject);publicabstractObjectsendPayInB(Objectobject);}父類publicclassPlatformSendPay{privateObjectobj;@ResourceprivateOpenPaymentDaoopenPaymentDao;publicPlatformSendPay(Objectobj){this.obj=obj;}publicObjectgetUserIdInA(){JidouOrderDatajidouOrderData=(JidouOrderData)obj;intstationId=jidouOrderData.getStation_id();//此處,openPaymentDao為空,意味著@Resource失效,這個PlatformSendPay類沒有納入spring管理中IntegeruserId=openPaymentDao.getIdentifyUser(jidouOrderData.getIdentifyId(),"1000000013");if(ObjectUtils.isEmpty(userId)){//todo:打印}returnuserId;}}子類publicclassSendPayextendsPlatformSendPayimplementsIPlatformSendPay{publicSendPay(Objectobj){super(obj);}@OverridepublicObjectsendPayInA(Objectobject){returngetUserIdInA();}@OverridepublicObjectsendPayInB(Objectobject){returngetUserIdInB();}}這是我的實現類,springmvc中的@Service標簽//業務一SendPaysendPay=newSendPay(jidouOrderData);intuserId=(int)sendPay.getUserIdInA();//業務二SendPaysendPay=newSendPay(JdOrderData);intuserId=(int)sendPay.getUserIdInB();疑問1.PlatformSendPay為何spring綁定不成功?如何才能綁定成功?2.springmvc里,是不是盡可能少使用這類的設計模式?在對象里面的方法,使用的變量有spring標簽,但是在new的情況下,這樣是不是會失效?
查看完整描述

2 回答

?
繁星點點滴滴

TA貢獻1803條經驗 獲得超3個贊

例如,我需要創建用戶并返回userid,每種業務創建的方式都不一樣。
這不是典型的工廠模式嘛?輸出是一致的,返回userid,創建過程根據業務來。簡單工廠就可以了。
                            
查看完整回答
反對 回復 2019-05-21
?
函數式編程

TA貢獻1807條經驗 獲得超9個贊

模式問題
所謂設計模式是對常見對象關系的總結,實際上包含了同幾乎所有可能的常見對象的創建和使用關系。如果你能成功地繞過所有設計模式寫出程序來,那才是真的了不起。實際上這是一個自然的過程,不需要為模式而模式。
為什么spring綁定不成功
自動裝配情況下,對手工new出的對象是沒法裝配的,因為spring自動裝配僅發生在初始化掃描階段。你的情況下建議采用對象繼承的方式,由不同子對象實現不同的邏輯,而不是同一個對象因為構造參數不同而產生不同的邏輯。
                            
查看完整回答
反對 回復 2019-05-21
  • 2 回答
  • 0 關注
  • 589 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號