前言事件始于2019年12月8日,当时官方公布了首例不明原因肺炎病例。现在已经快2年了。我们经历了封城、隔离、在家办公。我们惊慌失措。我们被无私的医生、护士、军人、志愿者等感动,他们的“不病不归”让我们一次次落泪。我们亲身体验了火神医院十天建成的奇迹。我们经历了太多。每当有困难的时候,都能感受到自己的国家是多么的强大,在疫情面前我们并不逊色于一些发达国家。今生无憾入华夏,来世做中国人!1、学习现在是2021年10月31日,疫情取得阶段性胜利。作为程序员,我能做的就是不给国家添麻烦。所以我平时不出去冲浪,在家学习,提升自己也不错。之前看ReentrantLock的源码的时候,涉及到AQS,里面用到了模板方法模式,所以今天打算输出一篇关于模板方法模式的文章。疫情期间大家都在家隔离了一段时间,所以有人在学做饭,有人在减肥,有人在生娃。下面就以此为例说说模板方法。代码实现:AbstractRegulationspackagetest;/***@作者木子的日夜编程*/publicabstractclassAbstractRegulations{//每个人都有自己的名字Stringname;publicAbstractRegulations(){}publicAbstractRegulations(字符串名称){这个。名字=名字;}//国家指定你的行动范围和所有一般活动//但是不管你在家里做什么戴上口罩,下楼去拿食物。”);呆在家里();System.out.println(name+"晚上8点,在家门口戴好口罩,等待志愿者量体温。");}protectedvoidstayAtHome(){thrownewUnsupportedOperationException();}}XiaoMingRegulations打包测试;/***@作者木子的日夜编程*/publicclassXiaoMingRegulationsextendsAbstractRegulations{publicXiaoMingRegulations(){}publicXiaoMingRegulations(){super(name);}//小明自定义他想做什么@OverrideprotectedvoidstayAtHome(){System.out.println("我是小明,我在家吃饭,我吃胖了。");}}小强规则包测试;/***@作者木子的日夜编程*/publicclassXiaoQiangRegulationsextendsAbstractRegulations{publicXiaoQiangRegulations(){}publicXiaoQiangRegulations(Stringname){super(name);}//小强自定义自己的Things@OverrideprotectedvoidstayAtHome(){System.out.println("我是小强,在家练腰,练得很好。");}}Testpackagetest;/***@作者木子的日夜编程*/publicclassTest{publicstaticvoidmain(String[]args){newXiaoMingRegulations("Xiaoming").doWhat();System.out.println("----------------华丽的分割线------------------");newXiaoQiangRegulations("Xiaoqiang").doWhat();}}输出:小明早上9点戴上口罩,下楼取菜。我是小明,我在家吃饭,我吃胖了。小明戴上晚上8点在他家门口戴口罩,等待志愿者量体温。----------------华丽的分界线-----------------小强早上9点在小区戴口罩,下楼取菜。我是小强,在家练腰,练过很好。晚上8点小强在家门口戴上口罩,等着志愿者量体温。二,看过我之前文章的都知道,AQS也是用的模板法图案。我们稍微回顾一下AQS的代码publicabstractclassAbstractQueuedSynchronizerextendsAbstractOwnableSynchronizerimplementsjava.io.Serializable{//尝试获取凭证publicfinalvoidacquire(intarg){//调用tryAcquire尝试获取一次if(!tryAcquire(arg)&&//如果获取失败,则放入队列中acquireQueued(addWaiter(Node.EXCLUSIVE),arg))selfInterrupt();}//可以看到tryAcquire没有实现,需要子类实现protectedbooleantryAcquire(intarg){thrownewUnsupportedOperationException();所以大家看到这里不要一头雾水,这种东西一般都是子类实现的,看它对应的实现类就可以了。3、越来越多?今天有了,特地找了一个简单的知识点输出文章。还有一些工作要做,我必须在家里加班才能完成。农民工,他们的灵魂,农民工都是主人。今天搬砖不狠,明天的仓位就不会稳。再见工人。欢迎关注公众号:木子日夜节目
