在前面設計了讀取系統配置信息的config模塊,與DBMS交互的DBHelper模塊,寫日誌的Logger模塊,MVC模塊,這些基本都是獨立存在的積木塊,我們需要將它們有效的結合在一起,構建出一個房屋框架來,然後在針對具體的業務領域時,我們就可以僅關注需要關注的地方。
這個信息系統的運行框架需要幫我們處理哪些事情?
1.需要一個運行入口(類似application.run的設計),
1.1. 初始化DBHelper實例(使用數據庫相關的配置信息)
1.2. 初始化Logger實例(使用日誌相關的配置信息)
1.3. 調用Login模塊實現系統登錄,獲取一個Session(根據配置信息來確定login模塊的相關信息,例如
- 從系統配置文件獲取登錄模塊的信息
- 不使用登錄界面<系統自動產生一個默認賬號,擁有系統所有權限>,
- 是否自動登錄
- 是否已記住上次登錄用戶名
- 等等
1.4. 獲取系統的mainController,完成顯示主界面,設置用戶權限,配置用戶工作區,獲取用戶工作消息/工作任務等內容,具體功能由主程序的mainController實例提供實現。這個運行框架提供一個mainController屬性,然後提供一個run方法實現主程序的運行。框架主要代碼如下:
TEFFramework = class
private
FMainControllerName: string;
public
procedure run;
property MainControllerName: string read FMainControllerName write FMainControllerName;
end;
implemention
{ TEFFramework }
procedure TEFFramework.run;
var
mainController: TController;
begin
if Login then
begin
mainController := TControllerFactory.findController(FMainControllerName);
mainController.showView;
application.run;
end
else
begin
application.terminate;
end;
end;
至於mainController及MainView的實現就不在TEFFramework的範圍之內,這個可以放到具體的系統Project裏實現。
這樣,整個系統的運行框架搭建完成。
我們就可以使用這個框架來進行具體的系統設計了。
後續我會展示採用efFramework來實現一個APS生產排程系統。