Dispatcher Pattern
出自VFP Wiki
Dispatcher Pattern
的原始碼
跳轉到:
導航
,
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
你所請求執行的操作被禁止。
你可以檢視並複製本頁面的原始碼。
====Dispatcher Pattern==== çå® RUN!PC å æèç±æç¶å çæ寫ç"ç±è»é«å質檢é©è«Design Patternçæç¨"ä¸æ,æ覺å¾ç¨ VFP å°±å¯ä»¥å¾ç°¡å®çä½å°,æ以就以 VFP 實ä½. 該æ以è¨ç®çç §ç¨ çºå¼å è¨ç®çç §ç¨ çæå,æéè¦ä¾ç §æ±½ç¼¸çccæ¸ä»¥åç§äºº/çæ¥ç¨è»ä¾å¤å®æ¶è²»çæ¨æº,ç §ä¸è¬ç寫æ³,å¾èªç¶å°±æç¨å°å¾å¤ If...Then...Else æ do case...endcase, å¯æ¯é樣åç¨å¼ç¢¼å°±æè®å¾å¾é·å¾é·,èé£ä»¥ç¶è·. åæ¯é樣: <pre> If cc < 500 money=900 else if cc < 600 money=1200 && ..... ç¥ endif endif </pre> ç¨ do case ç話åæ¯é樣 <pre> do case case between( 0, 500 ) money=900 case between( 501, 599 ) money=1200 && ... ç¥ endcase </pre> æå ç以ä¸å Dispatcher pattern 解決æ¤ä¸åé¡. å¨ VFP 裡é¢å¯ä»¥ç´æ¥çµåè³æ庫ä½æ´å¥½çè§£æ³ <pre> * * ITax.prg * DEFINE CLASS ITax as custom PROCEDURE Init() create cursor crTax( cc_lo I, cc_hi I, PrivateTax Y, BusinesTax Y ) insert into crTax values ( 0, 500, $ 1620, $ 900 ) insert into crTax values ( 501, 599, $ 2160, $ 1200 ) insert into crTax values ( 600, 1199, $ 4320, $ 2160 ) insert into crTax values ( 1200, 1799, $ 7120, $ 3060 ) insert into crTax values ( 1800, 2399, $11230, $ 6480 ) insert into crTax values ( 2400, 2999, $15210, $ 9900 ) insert into crTax values ( 3000, 4199, $28220, $16380 ) insert into crTax values ( 4200, 5399, $46170, $24300 ) insert into crTax values ( 5400, 6599, $69690, $33660 ) insert into crTax values ( 6600, 7799, $117000, $44460 ) insert into crTax values ( 7800, 9999999, $117000, $44460 ) ENDPROC PROCEDURE Destroy() use in crTax ENDPROC PROCEDURE GetTax( cc, theKind ) local ly_result local lc_oldalias lc_oldalias=alias() select("crTax") go top locate for between( cc, crTax.cc_lo, crTax.cc_hi ) if found() ly_result=crTax.&theKind else ly_result=0 endif select( lc_oldalias ) return ly_result ENDPROC PROCEDURE GetPrivateTax( cc ) return this.GetTax( cc, "PrivateTax" ) ENDPROC PROCEDURE GetBusinessTax( cc ) return this.GetTax( cc, "BusinesTax" ) ENDPROC ENDDEFINE </pre> <pre> * * test_itax.prg * LOCAL lo_obj set procedure to itax.prg lo_obj=createobject("ITax") ? lo_obj.GetPrivateTax( 1000 ) ? lo_obj.GetBusinessTax( 2000 ) </pre> ç§,é樣ä¸æ¯ç°¡å®å¤äºå?? å¨é裡æç£å¼çä¸ä¸,å¸æ大家å¦æææ´å¥½çè§£æ³ ä¹ post ä¸ä¾,è®å¤§å®¶è§æ©ä¸ä¸ ^_^ [[category:以VFPä»ç´¹Design Pattern]]
返回到
Dispatcher Pattern
。
檢視
頁面
討論
原始碼
歷史
個人工具
登入/建立新帳號 選單
導航
首頁
社群入口
現時事件
近期變動
隨機頁面
使用說明
搜尋
工具箱
鏈入頁面
相關頁面修訂記錄
所有特殊頁面