android系统的IOC机制

来源:互联网 发布:c语言中sleep函数单位 编辑:程序博客网 时间:2024/06/07 15:35

认识IOC-不用你找,我来提供给你

英文名:Inversion of Control

中文名:控制反转

简单解释:生命周期由框架控制

为什么是反转?

         框架在前,程序在后
         框架调用程序
         程序的生命周期由框架控制
         汇总-流程决定于framework
 
 
题外话:Framework与library的区别:library仅仅只是提供api接口,而Framework除了提供api之外,更重要的是提供IOC机制,对程序的生命中期进行控制。
 
现在,我们看一个利用最简单的继承实现的IOC。
public class MyView extends View {          private Paint paint;          public MyView(Context context) {                super(context);                 private Paint paint= new Paint();          }          public void ReDraw() { this.invalidate(); }           @Override           protected void onDraw(Canvas canvas) { //画长方形                  paint.setAntiAlias(true);                  paint.setColor(Color.YELLOW);                   canvas.clipRect(30, 30, 100, 100);           }}

简单的分析下上面的这个程序
MyView继承View
执行到ReDraw()时,正向调用frameworkinvalidate();
Framework反向调用MyViewonDraw(),此为重载回调。
 
上述为IOC的基本方式,那么Framework干了一个很简单的工作,只要聚合父类和集成接口就好了,这样的话,就利用这种思想实现了IOC。
 
原创粉丝点击