设计模式之模板模式

本文深入探讨了模板模式的概念,通过示例代码展示了如何在基类中定义骨架,子类实现细节,实现代码复用和扩展。介绍了模板模式的优点和潜在缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.什么是模板模式?

一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。

二.模板模式怎么写

模板模式在我们写基类封装的时候很是常见,一般我们都在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.行为由父类控制,子类去实现。缺点就是每一个不同的实现都有子类来实现,导致类的继承过于庞大,显得臃肿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值