假设您有一个数据访问对象:
class Person {
constructor(id) {
}
getName(){}
setName(name){}
...
}
并且您具有GraphQL服务,其中包含Person查询和变异:
query {
person(id: ID!) { name }
}
mutation {
person(id: ID!, name: String!): Boolean
}
并且您有一个PersistenceFactory可以处理Person()上的save()操作:
pf.getPerson(id)
...
pf.savePerson(p)
GraphQL查询在哪里?
在PersistenceFactory中?在这种情况下,您需要创建一个接受查询结果的Person构造函数。
在个人DAO中?通常,将Person绑定到特定的持久性策略上没有任何意义,但是在混合使用GraphQL的情况下,您已经有了关注点分离。
聚合查询如何?
query {
person(id: ID) {name}
cow(id: ID) {name}
}
如果每个实体都被单独对待,那么如果没有诸如PersonCow之类的对象或诸如pf.getEntities({person: personId, cow: cowId})
之类的方法就无法完成
您是否还需要DAO?