文章来源本人的博客:http://codelifeliwan.github.io/ 转载请注明出处
查看[设计模式]系列内容请点击:https://www.jianshu.com/nb/45937362
定义:
定义一个操作中的操作骨架,而将一些具体的操作步骤延迟到子类中
理解:
将大象放进冰箱需要三步,分别为第一步、第二步和第三步,我们在抽象类中定义一个放进冰箱的方法,规定了需要这三步,具体这三步都干了什么在抽象类的子类中定义。
利用的是抽象类中实现了的方法可以调用抽象方法(未具体实现的方法)。
方法:
首先定义一个抽象类,在规定的操作中可以定义未实现的abstract方法。这些abstract方法需要在子类中实现,达到预先定义操作的骨架,在子类中具体实现一些步骤的目的。
适用场合:
一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。
各子类中的公共行为应该被提取出来并集中到一个公共的父类中以避免代码重复,事实上子类也不用关心已经实现的算法框架,只需要关心具体的实现步骤即可
控制子类扩展,如果不想让子类更改算法骨架,只需要在骨架方法上加上final即可。