javascript - 如果 getOrCreate 是一种反模式,我该如何避免呢?

标签 javascript design-patterns anti-patterns

根据 http://martinfowler.com/bliki/CQRS.html我相信 getOrCreate 函数是一种反模式。

function getOrCreateObj(something) {
  let f = find(something, db); 
  if (f) return f;
  else return createObj(something);  
}

我应该怎么做才能避免它?

最佳答案

最好有返回特定类型或 null 的无副作用函数。

所以你会有一个 get 和一个 create 方法,并在应用程序逻辑或上面的抽象中检查是否存在 something

// pseudo code
get( INT: id ); // Returns SomeObj or NULL
create( INT:id ):: SomeObj;

// In service or application layer or other abstraction
foo = get( 1 ) || create( 1 );

关于javascript - 如果 getOrCreate 是一种反模式,我该如何避免呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33892690/

相关文章:

if-statement - 需要重构 Arrow 反模式的想法

javascript - 如何全面查询类(class)情况?

java - 如何实现对两个相同类的一个引用?

php - 我必须将数据依赖性从 Controller 中移出(并移入工厂中)吗?

c# - 设计递归方法的建议

javascript - Pub/Sub 中的发布者应该是同步还是异步?

javascript - 将自定义功能添加到 chrome 的控制台中

Javascript 掩码计算

javascript - 使用 JSON 定义的函数时是否可以使用相对语法访问 JSON 属性?

reactjs - 使用 setTimeout 避免 React 中的重新渲染