IOC简单解释:生命周期由框架控制
为什么是反转?
框架在前,程序在后
框架调用程序
程序的生命周期由框架控制
汇总
-
流程决定于
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
()
时,正向调用
framework
的
invalidate();
Framework
反向调用
MyView
的
onDraw
(),
此为重载回调。
这样整个控制流程,调用,就变成了framewor的事了。