存储库模式与java中的规范模式

时间:2017-11-03 10:43:32

标签: java repository-pattern specification-pattern

我正在尝试实现存储库模式来查询用户以及与每个用户关联的相应设置。我有一个存储库接口,它有每个存储库都要实现的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

请帮助。

1 个答案:

答案 0 :(得分:0)

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