下面有一个示例类。我正在寻找一种从这些基本功能方法中更好地创建组合方法的方法。
class UserService {
getUserByUuid (uuid) {}
getUserByEmail (email) {}
async getScopedMembers (user) {
return await this.getScopedMembers(user)
}
getMembers (scopedMembers) {
return scopedMembers.map(scopedMember => scopedMember.member)
}
getContacts (members) {
return _.uniqBy(members.map(member => member.contact), 'id')
}
getContactsWithoutSelf ({ contacts, user }) {
return contacts.filter(contact => contact.id !== user.contact.id)
}
}
我遇到的问题是使用这些函数创建易于使用的api。
我一次又一次地发现自己必须创建许多使用这些详细功能的函数,例如getMembersByUuid(uuid)
,它们首先会吸引用户,然后是getScopedMembers
,然后是getMembers
。然后我发现我需要另一个函数getMembersByUser
,并且不得不编写另一个便利函数。
有没有其他方法可以将这些功能粘合在一起?
我研究了组成,流,管道,重载,抽象类,没有解决方案。