模板方法

模板方法之前push的发送过程和歌单抓取, 还有spring源码和AQS中都有使用到。
我觉得思想就是在抽象类中定义一个模板(里面再定义几个方法的的执行步骤), 然后这几个方法可以留给子类去拓展。我以歌单抓取的过程来写代码。

public abstract class AbstractSongCrawler {

    public final void doWork() {

        getSongs();
        dealSongs();
    }

    protected abstract void getSongs();

    protected void dealSongs() {
        System.out.println("歌曲正在入库");
    }
}
public class QqSongCrawler extends AbstractSongCrawler {
    @Override
    protected void getSongs() {
        System.out.println("正在从qq来赚取歌曲");
    }
}
public class WangYiSongCrawler extends AbstractSongCrawler {
    @Override
    protected void getSongs() {
        System.out.println("正在从网易云抓取歌");
    }
}

public class Test {
    public static void main(String[] args) {
        AbstractSongCrawler qq = new QqSongCrawler();
        AbstractSongCrawler wangyi = new WangYiSongCrawler();
        wangyi.doWork();
        qq.doWork();
    }
}

输出结果

正在从网易云抓取歌
歌曲正在入库
正在从qq来赚取歌曲
歌曲正在入库
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容