1

我正在尝试实现存储库模式来查询用户以及与每个用户关联的相应设置。我有一个存储库接口,其中包含每个存储库要实现的 crud 操作。

import java.util.List;

public interface Repository<T> {

    void add(T item);
    void add(Iterable<T> items);
    void update(T item);
    void remove(T item);
    void remove(Specification specification);
    List<T> query(Specification specification);

}

我正在阅读规范模式,但我不明白如何将这个概念应用于我的用例。

我有两个实现 Repository 接口的存储库。我的课程将具有以下操作,这些操作将转换为界面中提到的 crud 操作

GetSettingsForUserIDMatchingSettingName(string userid, string settingname);
CreateSettingForProfile(string userid, Setting setting);
Create(string userid, Setting setting);
Update(string userid, Setting setting); 
GetAllProfiles();
GetProfilesMatchingUserID(string userid);
GetSettingsForUserID(string userid);        
GetProfilesForUserIDWithSettingName(string userid, string settingname);

如何创建我的规范类或接口,以便我的规范满足所有用例。

我指的是下面的 github 链接来实现,但我迷路了。

https://github.com/patrikfr/specification/blob/master/specification/src/com/granular8/specification/genericspec/Specification.java

请帮忙。

4

1 回答 1

0

如果您正在查询或需要它来过滤要从某个存储库中删除的对象,规范模式可以提供帮助。在 C# 中有一个很好的模式实现。希望您将它翻译成 Java,因为它已经支持 lambda 表达式。 https://github.com/jnicolau/NSpecifications

于 2019-10-25T15:26:50.153 回答