前言
事件开始于2019年12月8日,官网通报首例不明起因肺炎患者病历。
到当初工夫曾经过来了 将近2年,咱们经验了封城、隔离、居家办公,咱们有过恐慌,有过打动,
咱们曾被自私的医生、护士、军人、志愿者等等而打动,他们的“病情不退誓不回”一次次让咱们落泪。
咱们经验了火神医院十天竣工的奇观,咱们经验的太多太多了。
每当有难的时候,你就能领会的你所在的国家是如此的弱小,面对疫情咱们毫不逊色于某些发达国家。
此生无悔入华夏,来世还做华夏人!
一、学习
当初是2021年10月31日,疫情曾经获得了阶段性胜利。
身为程序员的我,能做到的是不为国家添麻烦。
所以我平时也不进来浪,在家学习学习,晋升一下本人也挺不错。
之前看ReentrantLock源码的时候波及到AQS,里边用到了模板办法模式,所以我打算明天输入一篇模板办法模式的文章。
疫情期间有段时间是全副居家隔离,于是有人在学习做饭,有人在减肥,有人在造娃。
咱们以此为例讲一下模板办法。
代码实现:
AbstractRegulations
<code class="java">package test; /** * @author 木子的昼夜编程 */ public abstract class AbstractRegulations { // 每个人都有本人的名字 String name; public AbstractRegulations(){} public AbstractRegulations(String name) { this.name = name; } // 国家指定了你的口头范畴 和所有大略流动 // 然而不论你在家干什么 public void doWhat(){ System.out.println(name+"早上9点小区带好口罩,楼下领菜。"); stayAtHome(); System.out.println(name+"早晨8点自家门口带好口罩,期待志愿者测体温。"); } protected void stayAtHome() { throw new UnsupportedOperationException(); } }
XiaoMingRegulations
<code class="java">package test; /** * @author 木子的昼夜编程 */ public class XiaoMingRegulations extends AbstractRegulations{ public XiaoMingRegulations(){} public XiaoMingRegulations(String name){ super(name); } // 小明自定义本人要干的事件 @Override protected void stayAtHome() { System.out.println("我是小明,我在家吃饭,吃的胖胖的。"); } }
XiaoQiangRegulations
<code class="java">package test; /** * @author 木子的昼夜编程 */ public class XiaoQiangRegulations extends AbstractRegulations{ public XiaoQiangRegulations(){} public XiaoQiangRegulations(String name){ super(name); } // 小强自定义本人干的事件 @Override protected void stayAtHome() { System.out.println("我是小强,我在家练腰,练得杠杠的。"); } }
Test
<code class="java">package test; /** * @author 木子的昼夜编程 */ public class Test { public static void main(String[] args) { new XiaoMingRegulations("小明").doWhat(); System.out.println("---------------富丽丽的分割线-------------------"); new XiaoQiangRegulations("小强").doWhat(); } }
输入:
<code class="tex">小明早上9点小区带好口罩,楼下领菜。 我是小明,我在家吃饭,吃的胖胖的。 小明早晨8点自家门口带好口罩,期待志愿者测体温。 ---------------富丽丽的分割线------------------- 小强早上9点小区带好口罩,楼下领菜。 我是小强,我在家练腰,练得杠杠的。 小强早晨8点自家门口带好口罩,期待志愿者测体温。
二、唠唠
看过我之前文章的人都晓得,AQS也是用了模板办法模式。
咱们略微回顾一下AQS的代码
<code class="java">public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable { // 尝试获取凭证 public final void acquire(int arg) { // 调用tryAcquire 尝试获取一次 if (!tryAcquire(arg) && // 获取失败就放到队列中 acquireQueued(addWaiter(Node.EXCLUSIVE), arg)) selfInterrupt(); } // 能够看到tryAcquire是没有实现的,须要子类来本人实现 protected boolean tryAcquire(int arg) { throw new UnsupportedOperationException(); } }
所以当咱们看到这里的时候不要懵,这种的个别都是子类实现,间接看她对应的实现类就能够了。
三、更多
还要更多?明天么有了,专门找了一个简略的知识点进行文章的输入。
还有点儿工作没有实现,要在家加加班,做一下。
打工人,打工魂,打工的都是人上人,明天搬砖你不狠,今天位置就不够稳。
再见各位打工人。
欢送关注公众号:木子的昼夜编程