對於軟件設計課程,我們需要設計和實現一個經過多次迭代的Bug跟蹤系統。軟件設計:通過軟件包從用戶隱藏系統
我們被教導使用控制器層從前端(UI)斷開後端(缺陷跟蹤系統)。我們明白,如果有人使用我們的(後端)軟件併爲其創建UI,則他應該只能通過控制器層訪問系統。換句話說,軟件中的類應該是不可見的。
目前我們正在通過將包中的類分組並使用默認/包訪問修飾符來強制執行此操作。
我想知道這是否是要走的路或者是否有文檔化的設計模式來實現前端和後端的封裝?有沒有教科書的例子呢?
對於軟件設計課程,我們需要設計和實現一個經過多次迭代的Bug跟蹤系統。軟件設計:通過軟件包從用戶隱藏系統
我們被教導使用控制器層從前端(UI)斷開後端(缺陷跟蹤系統)。我們明白,如果有人使用我們的(後端)軟件併爲其創建UI,則他應該只能通過控制器層訪問系統。換句話說,軟件中的類應該是不可見的。
目前我們正在通過將包中的類分組並使用默認/包訪問修飾符來強制執行此操作。
我想知道這是否是要走的路或者是否有文檔化的設計模式來實現前端和後端的封裝?有沒有教科書的例子呢?
看看MVC(模型 - 視圖 - 控制器)模式。它將爲您提供模型(後端),View(前端)和Controller(業務邏輯或控制器層)的分離。
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
這個任務是試圖讓你覺得在API的條款。這些是您啓用系統用戶進行交互以運行應用程序業務邏輯的端點。
在這種情況下,您可能會有「寫新票」,「爲開發者分配票據」,「解決票證」等情況。 您的控制器會通過此API提供這些操作的合約。
這允許您爲同一個應用程序構建不同的接口,即Web應用程序,Android應用程序,IOS應用程序,您可以將其命名。
很多時候,模型 - 視圖 - 控制器模式認爲視圖層也在您的模型和控制器所在的同一個應用程序中。我認爲,在你的情況下,你會看到更多的Service Oriented Architecture (SOA)。
您的UI如何與您的控制器進行通信?這是一個Web應用程序嗎? – jaco0646