摘要:本文以電子商務網站設計中物流模塊開發為實例,從需求分析、邏輯設計與模式選擇和類的設計幾個方面,具體說明設計模式的選擇和運用方法,不僅成功的實現了一個全新架構的、性能優越的物流模塊,而且在系統的設計與開發中所采用的一些設計技術和方法具有很強的通用性,稍加改動就可以應用到其它領域。
關鍵詞:電子商務網站;物流;設計模式
中圖分類號:F019.3 文獻標識碼:A
引言
設計模式這個概念最初產生于建筑行業。設計師(設計建筑物而不是計算機系統)意識到他們需要共享有關正確設計技術的想法。這些想法是在可以使設計師團體從分享經驗和教訓中獲益的設計模式中形成的。設計模式在80年代后期從建筑業進入計算機系統領域。面向對象(Object-oriented,OO)原則逐漸得到普及,而設計模式成為培育新的OO追隨者的最佳實踐。[1]
本文的研究重點是對業務變化頻繁的業務需求,如何進行設計模式的選擇與運用,從而獲得其普遍規律。研究的方法可以通過以下幾個步驟:
(1)介紹設計模式的使用環境、結構、收益與代價。
(2)以電子商務網站系統中物流模塊開發為具體例子,說明在.NET環境下業務設計過程中,設計模式的選擇與作用。
一、基于.NET環境的設計模式
.NET集成了先進的軟件體系結構的理念,應該說與微軟以前推出的運行環境和編程語言相比有革命性的變化。.NET戰略將Internet本身作為構建新一代操作系統的基礎,并對Internet和操作系統的設計思想進行延伸,使開發人員能夠創建出與設備無關的應用程序,方便的實現Internet應用。.NET包括一系列覆蓋各個方面的產品,這些產品符合XML和Internet產業標準,為用戶提供Web服務的開發、管理和應用。
反射(Reflection)是.NET中的重要機制,通過反射,可以在運行時獲得.NET中每一個類型(包括類、結構、委托、接口和枚舉等)的成員,包括方法、屬性、事件,以及構造函數等、還可以獲得每個成員的名稱、限定符和參數等。 [2]
委托技術是NET引入的一種重要技術,使用委托可以實現對象行為的動態綁定,從而提高設計的靈活性。NET運行庫支持稱為“委托”的引用類型,其作用似于C++中的函數指針。[3] 。委托主要用于.NET Framework中的事件處理程序和回調函數,NET中的委托更進一步地降低了對象間的耦合性,將靜態的組合關系變為運行時的動態組合關系。
以下將介紹電子商務網站中的物流。
二、電子商務網站中的物流
物流對電子商務的實現很重要,電子商務對物流的影響也肯定極為巨大,電子商務條件下商流和物流的一般流程可簡要表述如下:
(1)企業將商品信息通過網絡展示給客戶,客戶選擇需要購買的商品,并填寫訂單。
(2)廠方通過訂單確認客戶,通知自己的應用系統組織貨源程序。
(3)客戶通過電子結算與金融部門交互執行資金轉移。
(4)金融部門通過電子郵件(或其它方式)通知買賣雙方資金轉移的結果。
(5)廠方組織貨物,并送達到客戶手中。
從上述電子商務的實際流程中,電子商務是集信息流、商流、資金流、物流為一身,是整個的貿易交易過程。
而電子商務下的物流系統就必須具備如下特征:
○1整個系統具有無限的開放性
○2物流節點普遍實行信息化管理
○3信息流在物流過程中起引導和整合作用
○4系統具有明顯的規模優勢
由于物流系統必須經常適應需求的變化,需要經常和數據庫打交道,外界發生的變化通常會改變物流系統的工作流程,因此設計物流系統時引入設計模式將使物流系統自適應外界的變化,設計人員無需或者只要進行少量的修改即可使系統正常隨需求工作。
三、設計模式在物流模塊中的選擇和應用
電子商務網站中很核心的部分是物流模塊,物流模塊也是業務頻繁變更最多的,因此,有必要對物流模塊引入設計模式。本節主要從模式選擇以及類的實現具體來分析設計模式的作用,最后給出算法評估。
1.邏輯設計與模式選擇
如果采用.NET的委托技術,電子商務網站物流系統最難設計的自定義問題可以更加靈活。采用委托技術可以進一步實現用組合代替繼承的思路,很多采用繼承實現的關系可以采用委托實現。采用委托可以簡化下列設計模式的使用。[4]
(1)模板方法:這種方法采用繼承實現具體方法,采用委托可以動態實現方法的組合。
(2)觀察者:可以使用事件委托實現觀察者與主題之間的通信。
(3)中介者:使用委托可以去除工件與中介者之間的耦合關系。
2.類的設計
從以上的分析可以抽象出電子商務網站物流系統應該有以下類并實現如下方法:
(1)商品信息類:
該類主要實現商品信息的添加、修改、刪除、檢索等功能。
(2)訂單信息類:
該類主要實現訂單的生成、訂單的修改、訂單的確認及訂單的查詢等功能。
(3)資金類:
該類主要實現資金的入賬、出賬、結算、統計等功能。
(4)通用類:
該類主要實現數據庫的連接、數據庫的操作、數據表的建立、數據表的刪除等一系列的操作。
從以上的類的設計中,可以清楚的看到,物流系統已不直接依賴于業務流程,所有的操作都通過類來實現。因此,當外界的業務發生變換時,整個物流系統不需要進行很大的修改,只需對相關業務流程的類進行微調即可。
3.算法評估:
由于專用類設計的涵蓋廣且用戶使用時可以自由選擇和配置,從而使得這套系統在廣度和深度上的適用性都比較好。
對大多數電子商務網站來說,其過程流程可以按標準來自動生成。少部分即便需要調整,那么調整的工作量也不大了。
如果由于政策等原因需要對網站流程做出大的調整時,只需系統維護定義人員對對應流程做出相應的調整即可,這個調整只需一次。
四、結束語
設計模式的選擇與運用研究是一個系統的工程,牽涉到諸多的理論和技術。由于研究時間和研究條件的限制,論文中存在著許多有待改進的地方。因此,在本論文工作的基礎上,今后可以進一步研究的方向有:
(1)目前只能為二次開發提供了方便,以及部分自適應的實現。但對系統完全自適應業務變化的功能尚未實現。
(2)本論文中涉及到的設計模式選擇只是單純的用于獨立的“電子商務網站物流系統”中,它能解決給定業務頻繁變更問題。因此,其他業務特殊性帶來的設計模式選擇策略是今后研究的重點。
(3)本課題中涉及到設計模式是以.NET為環境背景的,對以其他開發語言環境下業務頻變更帶來的設計模式選擇問題,也是今后研究發展的部分。
(4)限于本人的精力、技術和時間的倉促,因此要改進的地方比較多。還包括評價理論在系統中體現的還不夠充分,使快速準確地評價一個設計模式優劣尚不能很好地實現。
作者單位:無錫商業職業技術學院
參考文獻:
[1]雷英杰,邢清華,王濤.人工智能(AI)程序設計[M].北京:清華大學出版社,2005:35-37.
[2]鐘義信.2006年人工智能國際會議論文集[D].北京:北京郵電大學出版社,2006:107-109.
[3]紐恩.Web應用測試[M].北京:清華大學出版社,2006:22-24.
[4]拉曼(Lar