andriod作为一个智能手机的操作系统,提供了一个完整的框架来使得开发者可以开发基于其的软件应用。通过自己的学习有些心得写下以后以后复习。
所谓框架,结构者,但凡一个框架,都是讲某一领域内的相同的地方抽象出来的东西,这些抽象的东西规定了一些方法该在何时或者何种条件下被调用,但如何调用何时调用却不是这些抽象的东西所决定的,而是由开发者来根据具体的业务需求来实现对象的抽象部分来实现。举个例子来说吧,activitiy是大多数andriod程序都要用到的东西,她有一些生命周期函数,我们程序员会覆写这些生命周期函数来告诉OS,我们该如何创建activitiy,如果按了暂停activitiy该做些啥,从暂停恢复了activitiy做些啥,结束这个activitiy该做些啥。等等,我们做的仅仅是覆写这些函数,但我们从来不调用这些函数,这些函数是OS根据情况调用的,再比如说控件系统,在andriod中所有的控件都是view类的子孙,这个view类有很多抽象的方法,包括点击,拖曳,移动到它上面等等,这些方法都是靠view的子孙自己实现,比如button会实现点击事件,但一个显示图片的控件对点击事件可能毫无反应,但它支持拖曳事件,而textedit会对在其内部的文字改变实现有一些实现(可能是弹出一个对话框,或者在一个label上显示,甚至可能播放一段动画!!),毫无疑问的,框架的使用给予开发者很大的方便,我们不用考虑这些何时调用的问题,我们只专注于自己想要的业务,我们只需要找准框架中的某个点,然后对这个点就行实现就可以了,我们想要在一个
activitiy被销毁的时候做点事,我们不用傻不拉几的写一个判断语句判断当前是否处于销毁阶段,我们只关注做了些什么,至于何时调用的逻辑,不用我们写,我们只要找到这个点就可以了。
这些就是框架神奇的力量,从常理上来讲,能够设计出框架的人,必然对架构有着很深的了解,那么按照这个框架写的程序肯定比程序员自己设计的程序结构从维护性和扩展性上好很多。一个经常做出成功项目的团队,必然是架构师和程序员分工的,架构师负责架构出好扩展性的高维护性的框架,程序员实现逻辑上的功能。