模板方法模式

本文深入探讨了模板方法模式在软件设计中的应用,阐述了其核心思想,即通过分离算法的基本步骤和可变步骤,实现代码的复用和扩展。文章详细介绍了模式的组成部分,包括基本方法和模板方法,以及如何通过子类实现这些方法。此外,还讨论了模板方法模式的优点,如封装不变部分、提取公共代码、符合开闭原则等。

定义:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

模板方法仅仅使用了继承机制,抽象模板的方法分为两类,

1.基本方法 子类需要实现的方法,并且在子类方法中被调用

2.模板方法 可以有一个或几个 一般是一个具体方法,


public abstract class BaseActivity extends Activity {
	
	@Override
	protected final void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		if(isNoTitle()){
			requestWindowFeature(Window.FEATURE_NO_TITLE);
		}
		setContentLayoutId();
		initView();
		
	}
	
	abstract void setContentLayoutId();
	abstract void initView();
	protected boolean isNoTitle(){
		return true;
	}
	
}


public class MainActivity extends BaseActivity {

	@Override
	void setContentLayoutId() {
		setContentView(R.layout.activity_main);
		
	}

	@Override
	void initView() {
		TextView tView = new TextView(this);
	}
	
	@Override
	protected boolean isNoTitle() {
		return false;
	}
    
}




其中 isNoTitle 被称为"钩子方法",由它的返回值来决定公共部分的执行结果。


模板方法模式的优点:

封装不变部分,扩展可变部分;

提取公共代码,便于维护;

行为由父类控制,子类实现,符合开闭原则。




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值