
设计模式
文章平均质量分 66
superCleanCoder
希望写的代码和生活一样都能简单但不简陋
展开
-
设计模式之模板方法
其中end是通用逻辑,代表通用不变的部分;start提供了默认的实现,但可被子类重写覆盖,代表相对不变的部分。而step1和step2则是需要子类提供,代表可变的业务逻辑。注意:这里可变、不变的顺序不是固定的,根据实际业务场景而定,也有可能是中间不变,开始和结尾部分是变化的。而在onClose中也提供了默认实现,但运行子类自行决定是否需要做些什么,这个其实是预留的钩子,运行子类自行实现它想在关闭时做的任何事,虽然父类也不清楚这些事是啥。模板方法的思想就在于,父类将骨架定好,子类根据需要自定义变化的部分。原创 2024-12-04 21:16:41 · 567 阅读 · 0 评论 -
设计模式之单例
而懒汉模式是线程不安全的,想象一下多个线程同时在单例还没实例化时进入,那么Objects.isNull(instance)判断为true,从而都会创建实例然后返回,那么有可能返回的是不同的单例。那么在单例还没初始化完成时,其他线程进入获取单例时,引用对象就不是空,而提前获取到还没初始化完成的单例引用,就可能会导致后面的业务逻辑出错。第一次校验是基于性能考虑,避免每次都进行加锁,因为只有还没实例化时这个短暂且特殊的场景是需要加锁的,大部分时候都是直接返回实例就行。所以单例对象是等要用的时候再进行实例化的。原创 2024-12-01 21:20:15 · 914 阅读 · 0 评论