模板方法(Template method)模式在Android应用
2010-10-14 06:21:00 来源:本站整理Android系统是一个优秀的应用程序框架,在框架中设计模式有着广泛的应用。当然Android也不会例外,本文只是简单以View类为例来说明Template method模式在Android中的应用。
首先我们温习一下Template method模式。模板方法模式作用是:在基类中定义好算法和流程。具体的实现延迟到派生类中定义。其UML图如下:
从上图我们可以看出在AbstractClass中定义好了TemplateMethod方法,这个方法中定义好了对 PrimitiveOperation方法的调用,但是在AbstractClass中把PrimitiveOperation方法定义成了抽象方法,没有实现,所以这个方法也只能是一个模板,不能调用。这样当定义ConcreteClass的时候,需要定义PrimitiveOperation方法,这样AbstractClass中的TemplateMethod方法中定义的逻辑就可以正确运行了。
我通过上面的描述我们可以知道,模板方法这个模式在框架中肯定会有很广泛的应用。这个模式可以对应成逻辑流程在框架中定义,具体实现有用户自己定义。
下面我以Android框架中的View类为例来介绍一下,这个模式在Android中的应用。
1、我们创建一个helloview工程。
2、增加一个MyView类,代码如下:
package com.simon.helloview;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;
public class MyView extends View {
public MyView(Context context) {
super(context);
}
protected void onDraw (Canvas canvas) {
Paint paint = new Paint();
paint.setARGB(255, 255, 0, 0);
canvas.drawCircle(100, 100, 100, paint);
}
}
3、定义HelloViewActivity代码如下:
package com.simon.helloview;
import android.app.Activity;
import android.os.Bundle;
public class HelloViewActivity extends Activity {
/** Called when the activity is first created. */
更多精彩
赞助商链接