根据 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/