设计模式之模板模式
程序员文章站
2022-06-13 13:50:56
...
一.什么是模板模式?
一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。
二.模板模式怎么写
模板模式在我们写基类封装的时候很是常见,一般我们都在BaseActivity中都会封装一些模板方法,让子类去实现,我们先看看模板模式的UML类图吧。
我们看下代码
public abstract class BaseView {
protected abstract void initView();
protected abstract void setListener();
public void onCreate() {
initView();
setListener();
}
}
public class ConcreteView1 extends BaseView{
@Override
protected void initView() {
System.out.println("ConcreteView1 initView");
}
@Override
protected void setListener() {
System.out.println("ConcreteView1 setListener");
}
}
public class ConcreteView2 extends BaseView{
@Override
protected void initView() {
System.out.println("ConcreteView2 initView");
}
@Override
protected void setListener() {
System.out.println("ConcreteView2 setListener");
}
}
测试代码
public class Client {
public static void main(String[] args) {
BaseView baseView=new ConcreteView1();
baseView.onCreate();
BaseView baseView1=new ConcreteView2();
baseView1.onCreate();
}
}
打印结果
ConcreteView1 initView
ConcreteView1 setListener
ConcreteView2 initView
ConcreteView2 setListener
三.小结
模板模式是定义了一套骨架,将一些步骤延迟到子类中去加载。优点:1.提取公共代码,便于维护。2.封装不变部分,扩展可变部分。3.行为由父类控制,子类去实现。缺点就是每一个不同的实现都有子类来实现,导致类的继承过于庞大,显得臃肿。