谈谈应用软件人机界面开发的组织框架编写

版权声明:本文为博主原创文章,如有需要,请注明转载地址:http://blog.csdn.net/morixinguan。若是侵权用于商业用途,请联系博主,否则将追究责任 https://blog.csdn.net/morixinguan/article/details/85334123

    一款好的电子产品,肯定少不了一个好的软件框架,首先我们来看下:

一般来说我们的产品都有按键,按键用来操作相应的界面,那就会有相应的界面处理方法,以下有两种结构的编写:

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类,我可以起个名字叫人机接口式编写。首先我们要操作界面,界面就是人机接口,每个不同的界面由对应的按键操作方法,这样看起来,是不是更好维护了?以后,我要往界面添加、删除等相关按键的处理方法,那是不是就更好找了?

如果有什么更好的应用框架,欢迎推荐,共同学习!

顺便打个广告,这是我们自家经销的唇膏,纯天然无公害,如果有需要欢迎微信抢购,谢谢大家!

猜你喜欢

转载自blog.csdn.net/morixinguan/article/details/85334123
今日推荐