2008年2月22日 星期五

L06 系統的製程(9)──佈置API與Service

對於Subsystem有幾個思考的方向:整個Environment 重新設計?整個Environment全部沿用?或者沿用相同的Factory、Preference、Message等支援Module而只改變MVC的部分?每一個決定都會帶出不同的作法。為了達到最大的彈性最好假設兩者都會被採用,只是每一種作法都會額外多出一些需要設計的管理方式。

在重新設計的情況時,使用Subsystem就像使用一個完全不同的系統,全部Module都要重新設計是免不了的。在沿用相同的支援Module時,所有Subsystem的MVC要實作同一組Interface使之能在Environment裡抽換;此時甚至要在Environment裡加上管理機制來允許多組MVC同時存在。

在系統必須提供一些功能給外部呼叫的時候,需要額外準備稱為API的Module,將系統提供使用的功能都集中定義在這裡;API被系統管理的,裡面定義的會是與Module提供的動作有關。另外會有Service的存在,在這裡放置的則是跟服務有關的功能,也就是使用者想要系統執行的功能;這在未來可以加掛將XML轉換為data model的模組讓Web Service可以使用系統提供的服務。

對應之前提過的兩層式邏輯,Service可以說是系統流程(對應為Use Case),而API裡的是動作流程(對應為Activity)。在我的設計裡,Service可以指定不同的Environment,讓同樣的一套服務程式碼可依設定的不同在不一樣的系統動作。

2 則留言:

  1. 你好
    我是每天看你 blog的人
    你的內容我認為很不錯
    可惜你的blog上面的圖都小了一點
    不知道可否放大張一點的圖

    回覆刪除
  2. [答] 很高興有人覺得我的記錄是有用的。
    其實插圖不管我畫多大,傳上Blogger後就自動依寬度不超過400的比例縮小。
    附圖只是依我的經驗製作,該記下的項目在文章裡都有說明。我認為先明白設計的思維後再調整出自己認為應該記錄的範本會是最理想的結果。

    回覆刪除