java - 如何在两个公共(public)函数之间建立牢固的前后关系

标签 java design-patterns

在下面的A*算法代码中here ,我有 2 个函数 setGcalcF,这样 -

  1. setG 必须在 calcF 之前调用 &&
  2. calcF 必须在 setG
  3. 之后调用

换句话说,只是简单地调用setG而不在后面调用calcF是不正确的。 此外,仅调用 calcF 而未调用 setG 是不正确的。 在 setG 之前调用 calcF 是不正确的。

如何向客户强制执行此规则?

存在类似的问题here , 但有细微差别。这道题条件比较严格。

最佳答案

第一个想法是将这些函数合并为一个函数setGAndCalcF():

private void setG(int g);

private void calcF(T destination);

public void setGAndCalcF(int g, T destination) {
    setG(g);
    calcF(destination);
}

如果这不可行,您可以在 setG()calcF() 中实现运行时检查(加上文档),这会抛出异常(例如 IllegalStateException )。

关于java - 如何在两个公共(public)函数之间建立牢固的前后关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21060229/

相关文章:

C#静态构造函数设计问题——需要指定参数

java - 使用 finish() 到 "end"手动 Activity : To or Not to?

java - 验证两个日期

java - java的时间格式

java - 每个实体或每个用例的 DAO

python - 在 Python 中使用空模式的推荐方法是什么?

java - 重复扫描仪临时创可贴? ( java )

java - 亚利桑那时区夏令时

javascript - 您会使用哪种模式来解决这种表达?

java - 避免重复代码的好策略