我有以下情况:
我正在收集主机上的数据。 每个主机都有属性和状态的集合。 并且主持人聚集在一起。
每个组都有一个唯一的ID,每个主机都有一个唯一的ID
并且所有群组都聚集在一个"存储库中。
。我目前正在使用以下数据结构:
DispatchQueue.main.async {
let layer = self.signUpBtn.layer
layer.borderColor = UIColor.white.cgColor
layer.borderWidth = 2 / UIScreen.main.scale
}
目前,这是作为常规内存数据结构实现的 但我需要将所有这些保存在数据库中。 我想定义一个允许我的好抽象:
我阅读了一些关于存储库模式的帖子,看起来很合适,但我无法弄清楚如何正确定义接口
我应该有1个存储库界面吗? 或者我应该为HostRepository,PropertyRepository StatusReporitory ...
分别设置接口答案 0 :(得分:1)
您可以拥有单独的存储库接口,但这里只使用一种方法。
这些类可以很容易地映射到表(或NoSQL DB中的文档)。
public class Property {
private String name;
private Object value;
}
public class Host {
private long id;
private List<Property> properties;
private List<Property> statuses;
}
public class HostGroup {
private long id;
private List<Host> hosts;
}
public interface HostRepository {
List<HostGroup> getAllGroups();
HostGroup getGroupById(long id);
HostGroup saveGroup(HostGroup HostGroup);
boolean deleteGroup(HostGroup HostGroup);
Host getHostById(long id);
Host saveHost(Host host);
boolean deleteHost(Host host);
Property getProperty(long hostId, String propertyName);
void saveProperty(long hostId, Property property);
...
}