2011-07-28 46 views
0

例如, 我想將在線商店分爲三部分。 用戶:用戶相關的信息,例如他們登錄。登出。通訊:發送電子郵件或通訊模塊。 ShoppingCart:顯示訂單。如何區分應用程序中的責任?

好的,這三個模塊是我小小的在線商店的主要功能。 很明顯,用戶的計劃,處理自己的東西,例如,用戶更改他們的個人資料圖片(好吧,我認爲這是沒有意義的有一個用戶的個人資料圖片,只是認爲這是一個例子。)

用戶---呼叫--->用戶

但我在這裏有一個問題,就是當用戶做一些功能,這需要跨模塊調用.... 讓我舉一個例子,如果用戶丟失了密碼,用戶需要使用通信方法向他/她發送一個新密碼......情況將變得如此:

user ----call---> communication 

更壞的情況是使用所有模塊,這裏是情況: 用戶使用購物圖表來處理他/她的購物,之後,他/她做出訂單,並使用發票使用通信模塊發送給用戶。

user ----call---> shoppingCart ---call---> Communication 

因此,每個模塊沒有分開,所有的模塊都知道每個人....但我並不想這樣做,例如,這個時候我做了新的應用程序,例如,我做一個只使用「用戶」和「通信」的視頻共享網站,我並不需要購買「shoppingChart」,並且擁有一個新的視頻模塊.....

對我而言「升級「我的用戶和通信方法來處理視頻模塊,但問題是,如果我修復了一些錯誤,例如getFullName方法做錯了什麼,當我需要」升級「回在線商店應用程序時,我還需要拍攝「視頻」模塊......

我想問的是,如何分離他們的責任,以及如何使代碼更加可重用?謝謝。

回答

0

在應用程序中儘量減少耦合是一種很好的做法,但是完全不可能完全去除它。

我的建議是建基類UserCommunication,並ShoppingCart只提供基本的接口,如getFullName()

然後,對於每個應用程序,編寫單獨的包裝是能夠與基類交互。您可能有一個OnlineShopping類和VideoSharing類,其中包含您需要的特定於每個應用程序的功能。有很多structural patterns可以幫助你與你的設計。此外,利用繼承來實現所有應用程序中類似的功能。

相關問題