欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

设计模式之模板模式

程序员文章站 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.行为由父类控制,子类去实现。缺点就是每一个不同的实现都有子类来实现,导致类的继承过于庞大,显得臃肿。