java abstractqueuedsynchronizer和模板方法模式

pnwntuvh  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(161)

在阅读源代码时 ReentrantLock ,我发现它内部使用了一个同步器 AbstractQueuedSynchronizer 控制门锁。doug lea在本文中提到 AbstractQueuedSynchronizer 用作“模板方法模式”,这有助于简化子类的编码。
然而,joshua bloch在有效的java中建议我们应该“支持组合而不是继承”,因为“与方法调用不同,继承违反了封装”。在我的理解中,spring中的“模板”(例如。 RedisTemplate , TransactionTemplate 等)遵循此规则。
所以,回到 AbstractQueuedSynchronizer 以及中定义的同步器 ReentrantLock ,我想知道它的设计(基于模板方法模式)是否有任何缺点。非常感谢!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题