zoukankan      html  css  js  c++  java
  • 总结使人进步,可视化界面GUI应用开发总结:Android、iOS、Web、Swing、Windows开发等

    可视化界面的软件,是21世纪最主流的应用类型了,黑屏控制台的不适合普通用户。
      2004年左右的时候,作为普通网民,接触的自然是可视化,准确是Windows那一套。
      那个时候,Microsoft Windows 98,红警,QQ是3个印象深刻的软件。
      
      大学之后,入了行,先后学习了Windows程序设计(C语言API开发)、MFC、Java Swing,Html Web,Android和iOS。
      
      总的来说,现在Html web和Java Swing要熟悉一些,Android和iOS的界面在深入学习中,Windows和MFC基本废弃了。
      
      学习了这么多可视化界面的应用程序开发,回头来看,很多地方,都是一样的。因此,特意总结下。
      
      我的观念是,总结使人进步。
      
      总的流程:
      
      1.入口,应用程序的起点
        Java Swing、Windows、iOS,是main函数。
    Android,AndroidManifest.xml指定Activity,可以认为程序入口被“Android”隐藏了。
    Web,入口是域名,对应到某个URL。后端是,比如Java,就是web.xml。
      2.启动流程封装和接口
        应用有了入口,就可以开始执行。
    执行的过程,通常都是先执行初始化逻辑。
    初始化逻辑,通常比较复杂。
    应用开发平台,会把整个的流程,清晰低定义出来,然后给开发者留出很多扩展接口。
    一部分接口是可选的,一部分是必须实现的。
    Java Swing这种main函数的,相对简单一点,按照咱们写的代码,一步步来就可以了。开发平台封装的会比较少。
    Java Web这种,web.xml各种配置,Tomcat等服务器,按照web.xml配置,初始化基本环境,servlet,listener等,
    留给开发者的初始化,是通过配置servlet等方式。我的理解是,Web开发这种,初始化会比较多。
        Android,和Java Swing类似,留给开发者的初始化不是很多。执行的过程中,需要资源,再初始化。
    iOS,学得不久,和Android基本一致。
    因此,主要分为3类:
    Java Swing应用,按照main一步步来,初始化很少。
    Java Web,初始化繁多,各种配置文件。
    Android和iOS,初始化也很少,可以按需要来。
    (个人感觉不够准确啊,仅供参考)
     3.初始化,开发者扩展接口
       应用初始化的过程,会给开发者留很多“扩展的接口”,从而把自己的程序和逻辑加入进来。
       
       Java Web中,比如用了SpringMVC框架,DispatchServlet就拦截了所有的URL,再分配到我们自己写的各个Controller中。
       Android中,配置Service和Activity等。
       
     4.绘制界面。
       Java Swing,用各种UI组件、API和布局,构造界面。
       Android、iOS、Windows,也差不多。
       Web Html,则是用Html和CSS比较多。
       
     5.绑定事件。
       Web前端中,JavaScript绑定click等,也可以把超链接的点击,理解成标准的自带的事件。
       Android、Java等,都差不多。
       绑定、移除等操作。
       
     6.事件响应。
       可以说,事件响应,才是程序的重点,开发者介入最多的地方。
       每一个事件,都需要响应,响应逻辑,就是处理界面资源、动画效果、业务逻辑的地方。
       比如,用户点击按钮,提交了一个表单。捕捉到这个事件,把表单存到数据库,再给用户一个反馈,或者跳转到其它界面。
       
       
       三种机制:
       1.为1个界面组件,绑定到1个明确的函数代码上。1对1
         比如,JavaScript中,$("#submitBtn").on("click,function(){});
         这种方式,比较明确,非常常见。  
       2.为1类界面组件,绑定1个事件。1对多。
          比如,JavaScript中,$(".action").on("click,function(){});
      这种方式,代码写起来简洁,适合同一类的事件。在Web端比较多。
      Android移动端、Java Swing等,用的比较少,没有怎么见过。
       3.不明确绑定到某个函数,使用纯粹的消息机制。
          印象中,Windows程序设计中,事件是真正的机遇“消息”的。
      点击一个按钮,这个事件,是当作一个消息的。
      代码中,有专门的处理消息的地方。
      
      我们经常看到的,把一个事件绑定到某个函数,是Android等框架简化的结果。
      
       从Windows程序设计中,我们可以看出,监听事件,通常都是“循环”或者“处于等待”状态的。
     也因此,UI通常都有一个“主线程”。
       事件响应,有可能会开启新的线程。
       要不然,点击了第1个按钮,再点击第2个,就不响应了。
       
       
    小结
       总的流程:入口-系统初始化-开发者初始化-界面-绑定事件-响应事件或捕捉消息-处理业务逻辑-返回结果。
       限于经验和表达能力,只能这么大概写一下。
       细一点,就需要具体到某种技术,比如Android,需要专业的大神来解释了。
       
    最后
      从以上,我们可以看出,在不同编程语言和GUI平台框架中,整个流程是类似的。
      2000年以前,就建立了这样的模型,后面就算是新出来的,也大致是按照这个思路的。
      我们似乎可以称之为“GUI设计模式”。
      
      此外,在不同语言中,数据结构、算法、业务模型、语法,等很多地方都存在着很多的共性。
      理解了这些共性,再找出差一点,学习新的编程语言等技术技能,就快很多。
      
      一个人的学习能力,和总结,找规律,有很大的关系。
      重复学习相同的相似的内容,花了很多无用功,理解还不够深刻。
      现在再回头,理解初中高中的“触类旁通”等学习境界,说的应该就是这个道理。
      现在,再回头想想咱们早期的学习方法和知识,很多还是有价值的。 
      知识,还是要活学活用。 
      
      希望通过本篇,能够给相关友人带来一些启发。
      
      小雷FansUnion-专注互联网技术和金融投资
      2015年12月6日  
       
      在之前的文章中,说的是在12月7日之前,今天总算是没有拖延~   
  • 相关阅读:
    SY/T 4206-2019 石油天然气建设工程施工质量验收规范 电气工程
    jmeter-05
    python-02(数组,列表,元祖,词典)的简单操作实例
    linux-13(查看文件命令find、远程传输文件scp,创建文件并更改权限)
    jmeter-04
    关于python的面试题目
    linux-12(find命令的强大搜索功能,删除命令)
    python-01(如何安装python并熟悉类型)
    小程序、app、web测试的区别
    软件测试面试问题及答案
  • 原文地址:https://www.cnblogs.com/qitian1/p/6462532.html
Copyright © 2011-2022 走看看