Arrange/Act/Assert

或称

Given/When/Then

意图

安排/执行/断言(AAA)是组织单元测试的一种模式。

它将测试分为三个清晰而独特的步骤:

  1. 安排:执行测试所需的设置和初始化。
  2. 执行:采取测试所需的行动。
  3. 断言:验证测试结果。

解释

这种模式有几个明显的好处。 它在测试的设置,操作和结果之间建立了清晰的分隔。 这种结构使代码更易于阅读和理解。 如果按顺序排列步骤并格式化代码以将它们分开,则可以扫描测试并快速了解其功能。


iluwatarIdiomTesting大约 2 分钟
Callback

目的

回调是一部分被当为参数来传递给其他代码的可执行代码,接收方的代码可以在一些方便的时候来调用它。

解释

真实世界例子

我们需要被通知当执行的任务结束时。我们为调用者传递一个回调方法然后等它调用通知我们。

通俗的讲

回调是一个用来传递给调用者的方法,它将在定义的时刻被调用。

维基百科说

在计算机编程中,回调又被称为“稍后调用”函数,可以是任何可执行的代码用来作为参数传递给其他代码;其它代码被期望在给定时间内调用回调方法。


iluwatarIdiomReactive大约 1 分钟
Double Checked Locking

含义

通过先测试锁定标准("锁提示")而不实际获取锁的方式来减少获取锁的开销。只有当锁定标准检查表明需要锁定时,才进行实际的锁定逻辑。

类图

适用场景

在以下场景适合使用双重锁检查模式:

  • 在创建对象时有存在并发的访问。如单例模式中,你想创建同一个类的单个实例,如果存在两个或更多的线程对实例进行判空,仅仅检查该该实例是否为空可能是不够的。
  • 在一个方法上存在并发访问,该方法的行为是根据一些约束条件而改变,而这些约束条件在该方法中也会发生变化。

iluwatarIdiomPerformance小于 1 分钟
Private Class Data

目的

私有类数据设计模式试图通过限制属性的可见性来减少属性的暴露。 通过将它们封装在单个Data对象中,可以减少类属性的数量。

解释

真实世界例子

想象一下你在为家人做晚餐炖汤。你想阻止家庭成员在你烹饪时偷偷品尝菜品,否则后面可能东西不够吃了。

通俗的说

私有类数据模式通过将数据与使用它的方法分离到维护数据状态的类中,从而防止了对不可变数据的操纵。

维基百科说

私有类数据是计算机编程中的一种设计模式,用于封装类属性及其操作。


iluwatarIdiomData access大约 2 分钟