Android是一个应用框架,而不是类别库
2008-11-17 17:18
483 查看
Android是一个应用框架,而不是类别库
有人拿「未插完的花盆」來比喻框架,似乎更傳神﹗插花老師先插上背景花,並留下空間,任學生發揮,繼續插完成。框架設計師提供了基本類別,也預留空間讓您發揮,繼續衍生出子類別。
关于这点,类似于MFC的消息机制,
比如在WM手机上有重力感应器,如果屏幕方向发生改变了,MFC的框架会以WM_SIZE或者WM_SETTINGCHANGE消息事件通知所有驻内存的程序窗口做出处理,程序应用可以截获WM_SIZE或者WM_SETTINGCHANGE消息做出自己的处理,也可以让MFC框架调用default window proc做出预设的处理.
和传统的App不一样的是:
传统的App是应用程式去调用类别库,进而类别库调用系统而完成整个用户请求,系统一直是被动的;
而框架结构里主动权在系统,系统或许会以广播的形式发出事件消息,程式接受到消息做出自己的处理,这实际上达到了一种框架调用应用程式的效果.
您寫傳統程式時,主控權掌握在程式手中,其決定如何呼叫庫存函數﹔就像棒球比賽的「投手」一樣。反之,使用框架時,您的程式則擔任「捕手」之角色.
在Linux / Windows 的事件驅動觀念中,OS 會不斷與應用程式溝通,不斷修正其慣例,裨對外界的事件提供迅速反應與服務。
當客人問道﹕今天打幾折﹖這是個小問題,店員按慣例(即按公司規定)來回答﹕8 折。當客人討價還價而問道﹕可否打7 折﹖店員請教經理,但經理並未給予特別指示,店員就依照慣例回答﹕滿1000 元打7 折。
假如,經理有所特別指示,則店員修正慣例如上图
客人 == 用户; 店员 == OS; 经理 == 框架; 应用 == 总裁.
总裁把公司的新的销售政策告诉给经理人员;当客人来的时候,客人通过店员询问
东西的价格的时候,店员可以直接告诉客人(预设值);而当客人问是否能打折或打几折的时候,店员就需要请示经理了,如果经理暂时没答复,店员就可以按公司惯例给
优惠(预设值)
與店員的互動細節幾乎都由經理人員處理掉了,有必要才會打擾(呼叫)總裁,所以總裁就非常輕鬆了.这就是框架结构的好处!
来自本人阅读高焕堂先生的Blog后摘录的读书笔记更多内容请移步博客.
有人拿「未插完的花盆」來比喻框架,似乎更傳神﹗插花老師先插上背景花,並留下空間,任學生發揮,繼續插完成。框架設計師提供了基本類別,也預留空間讓您發揮,繼續衍生出子類別。
應用框架 | 類別庫 | |
目的 | 讓應用程式師衍生出具體類別,衍生時可修正類別,才誕生物件。 | 讓程式師拿現成類別來誕生物件,類別並未預留空間給程式師來修正。 |
應用框架中的類別的函數,常呼叫應用程式中的函數。 | 應用程式的函數只能呼叫類別庫中的函數,反之不可。 | |
含有類別間之關係,其預設了物件間的互助合作關係。 | 類別是獨立的,並未設定物件間的溝通方式。 | |
物件常含預設計行為(DefaultBehavior) ,預設行為可讓應用程式師修正之。 | 物件的行為皆是固定的,無法修正之。 |
比如在WM手机上有重力感应器,如果屏幕方向发生改变了,MFC的框架会以WM_SIZE或者WM_SETTINGCHANGE消息事件通知所有驻内存的程序窗口做出处理,程序应用可以截获WM_SIZE或者WM_SETTINGCHANGE消息做出自己的处理,也可以让MFC框架调用default window proc做出预设的处理.
和传统的App不一样的是:
传统的App是应用程式去调用类别库,进而类别库调用系统而完成整个用户请求,系统一直是被动的;
而框架结构里主动权在系统,系统或许会以广播的形式发出事件消息,程式接受到消息做出自己的处理,这实际上达到了一种框架调用应用程式的效果.
您寫傳統程式時,主控權掌握在程式手中,其決定如何呼叫庫存函數﹔就像棒球比賽的「投手」一樣。反之,使用框架時,您的程式則擔任「捕手」之角色.
在Linux / Windows 的事件驅動觀念中,OS 會不斷與應用程式溝通,不斷修正其慣例,裨對外界的事件提供迅速反應與服務。
當客人問道﹕今天打幾折﹖這是個小問題,店員按慣例(即按公司規定)來回答﹕8 折。當客人討價還價而問道﹕可否打7 折﹖店員請教經理,但經理並未給予特別指示,店員就依照慣例回答﹕滿1000 元打7 折。
假如,經理有所特別指示,則店員修正慣例如上图
客人 == 用户; 店员 == OS; 经理 == 框架; 应用 == 总裁.
总裁把公司的新的销售政策告诉给经理人员;当客人来的时候,客人通过店员询问
东西的价格的时候,店员可以直接告诉客人(预设值);而当客人问是否能打折或打几折的时候,店员就需要请示经理了,如果经理暂时没答复,店员就可以按公司惯例给
优惠(预设值)
與店員的互動細節幾乎都由經理人員處理掉了,有必要才會打擾(呼叫)總裁,所以總裁就非常輕鬆了.这就是框架结构的好处!
来自本人阅读高焕堂先生的Blog后摘录的读书笔记更多内容请移步博客.
相关文章推荐
- 推荐一个Android应用开发的服务器端框架codeigniter
- xUtils简介 (源于afinal框架是一个开源的android的orm和ioc应用开发框架)
- android中自己写一个Fragment的应用,类似QQ的一个框架
- 一个简单的Android应用框架图
- Android (3) 之应用框架与类别异同点,Activity生命周期
- 在Android开发过程中搭建一个自己的应用框架有几个步骤?需要注意什么?
- afinal - afinal 是一个android的 orm 和 ioc 框架。通过afinal的finalAcitivity,finalBitmap,finalDB,finalHttp,开发android应用将更加简单。 - Google Project Hosting
- android 一个应用去获取另一个应用assets下面的资源通过框架代码桥梁------项目实战成功案例
- android应用框架搭建------AppManager
- android 五大应用开发框架
- 说说Android桌面(Launcher应用)背后的故事(七)——又是一个附属品(可以转动的绚烂饼图)
- Android在一个应用中调用另一个应用
- Android如何判断一个应用在运行
- 如何在本地搭建一个Android应用crashing跟踪系统-ACRA
- play框架2.5.6教程——创建一个新的应用
- Android 开发中MVP框架的应用
- android 平台下,省略号为一个点,而不是3个点的解决方法
- ButterKnife是一个专注于Android系统的View注入框架
- 一个牛逼哄哄的Android框架One,秒杀最火的Xutils
- [实践] Android5.1.1源码 - 为每个应用添加一个Content Provider