2014-02-20 21 views
0

我有兩個項目,比如App和Data。數據中有一些App方法使用的方法,以便App項目不必擔心任何數據訪問/數據庫連接等。我猜這個設置的好處是1.數據沒有依賴性在應用程序和2.如果數據庫被改變,從MS SQL到Oracle說,你根本不需要改變應用程序項目 - 只需開發一個新的數據項目。我應該在哪裏定義我的接口以獲得良好的體系結構?

似乎應該爲應用程序項目用於數據訪問的所有方法定義一個接口。這樣,有人可以開發應用程序項目而不關心數據項目,差異數據項目可以插入到應用程序項目中,只要它實現了接口,一切都可以工作。

爲什麼問題是這樣的:接口在哪裏生活?如果它存在於應用程序中,那麼數據現在依賴於應用程序。但是,如果它存在於Data中,則必須將其複製到任何可能需要插入的新數據項目中。

我會舉另一個例子:假設App是一個在線銷售工具。您可能需要同一個App項目的兩個實例,一個用於eBay,另一個用於亞馬遜。 eBay實例將擁有一個可以與eBay進行交易的數據項目,而亞馬遜實例將擁有一個不同的數據項目。我如何構建應用程序,以便可以將相同的應用程序組件部署到兩個實例?接口是否正確?

回答

0

是的,接口是正確的使用,你通常會把它們放在不同的文件中 - 通常每個接口都在它自己的文件中 - 然後只需引用文件(或模塊或程序集,取決於平臺)在實現支持所述接口的新對象時聲明接口。

該方案允許分離問題,更簡單的單元測試,嘲諷等等。

+0

啊我明白了。所以實現對象引用了接口項目。主項目是否必須參考接口項目和實施者項目?否則,你如何實際使用主項目實例化實現類? – user1886323

0

如果你想保持你的依賴關係是孤立的,那麼最簡單的方法是將接口編碼到AppDataInterface項目中,App和Data都可以依賴該項目。

相關問題