1. 程式人生 > >談談應用軟體人機介面開發的組織框架編寫

談談應用軟體人機介面開發的組織框架編寫

    一款好的電子產品,肯定少不了一個好的軟體框架,首先我們來看下:

一般來說我們的產品都有按鍵,按鍵用來操作相應的介面,那就會有相應的介面處理方法,以下有兩種結構的編寫:

A類編寫:

void left_key_process(int current_page)
{
	switch(current_page)
	{
		case MAIN_PAGE:
			//針對main_page的左鍵處理
			 main_page_left_key_process();
			break ;
		case SETTING_PAGE:
			//針對setting_page的左鍵處理
			setting_page_left_key_process();
			 break ;
		case LOG_PAGE:
			//針對log_page的左鍵處理
			log_page_left_key_process();
			break ;
		case LANGUAGE_PAGE:	
			//針對language_page的左鍵處理
			language_page_left_key_process();
			break ;
			 ....
	}
}

void right_key_process(int current_page)
{
	//....
}

void enter_key_process(int current_page)
{
	//....
}

void UI_Page_Process(int KeyValue)
{
	switch(KeyValue)
	{
		case LEFT_KEY :
			 left_key_process(KeyValue);
			 break ;
		
		case RIGHT_KEY:
		     right_key_process(KeyValue);
			 break ;
		case ENTER_KEY:
			 enter_key_process(KeyValue);
			 break ;
		...
	}
}

B類編寫:

void main_page_process(int KeyValue)
{
	switch(KeyValue)
	{
		case LEFT_KEY:
			 //針對main_page的左鍵處理
			 break ;
		case RIGHT_KEY:
			 //針對main_page的右鍵處理
			 break ;
		case ENTER_KEY:
			 //針對main_page的Enter鍵處理
			 break ;
		case BACK_KEY:
		     //針對main_page的back鍵處理
			 break ;
		...
	}
}

void setting_page_process(int KeyValue)
{
	switch(KeyValue)
	{
		case LEFT_KEY:
		     ...
			 break ;
		case RIGHT_KEY:
			 ...
			 break ;
		case ENTER_KEY:
			 ...
			 break ;
		case BACK_KEY:
			 ...
			 break ;
		...
	}
}

void Log_page_process(int KeyValue)
{
	switch(KeyValue)
	{
		case LEFT_KEY:
			 ...
			 break ;
		case RIGHT_KEY:
			 ...
			 break ;
		case ENTER_KEY:
		     ...
			 break ;
		case BACK_KEY:
			 ...
			 break ;
		...
	}
}

void UI_Page_Process(int KeyValue)
{

	switch(current_page)
	{
		case MAIN_PAGE:
			 main_page_process(KeyValue);
			 break ;
		case SETTING_PAGE:
			 setting_page_process(KeyValue);
			 break ;
		case LOG_PAGE:
			 Log_page_process(KeyValue);
			 break ;
		....
	}
}

A類編寫,我可以起個名字叫直男式編寫,邏輯沒有錯,也能正常操作相應的頁面,沒有問題,可它就是一條線,直! 首先拿到鍵值,然後操作介面,和我們正常人的思維差不多。但如果程式碼量劇增,頁面眾多,每個頁面有不同的處理按鍵,相信A類的編寫給後面的人來維護或者增加處理方法人一定會非常抱怨,為啥找個介面處理這麼痛苦?

我們再來看看B類,我可以起個名字叫人機介面式編寫。首先我們要操作介面,介面就是人機介面,每個不同的介面由對應的按鍵操作方法,這樣看起來,是不是更好維護了?以後,我要往介面新增、刪除等相關按鍵的處理方法,那是不是就更好找了?

如果有什麼更好的應用框架,歡迎推薦,共同學習!

順便打個廣告,這是我們自家經銷的脣膏,純天然無公害,如果有需要歡迎微信搶購,謝謝大家!