带有Java中规范模式的存储库模式

问题描述 投票:1回答:1

我正在尝试实现存储库模式以查询用户以及与每个用户相关联的相应设置。我有一个存储库接口,该接口具有要由每个存储库执行的操作。

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

请帮助。

java repository-pattern specification-pattern
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.