using GFramework.Core.Abstractions.Bases; namespace GFramework.Core.Abstractions.Registries; /// /// 表示一个通用的注册表接口,用于根据键类型T获取值类型TR的对象 /// /// 注册表中用作键的类型 /// 注册表中存储的值的类型 public interface IRegistry { /// /// 获取注册表中所有的键 /// IEnumerable Keys { get; } /// /// 获取注册表中项的数量 /// int Count { get; } /// /// 根据指定的键获取对应的值 /// /// 用于查找值的键 /// 与指定键关联的值 Tr Get(T key); /// /// 检查注册表是否包含指定的键 /// /// 要检查的键 /// 如果注册表包含具有指定键的元素,则为true;否则为false bool Contains(T key); /// /// 添加一个键值对到注册表中 /// /// 要添加的键值对映射对象 IRegistry Registry(IKeyValue mapping); /// /// 添加一个键值对到注册表中 /// /// 要添加的键 /// 要添加的值 IRegistry Registry(T key, Tr value); /// /// 从注册表中移除指定键的项 /// /// 要移除的键 /// 如果成功移除则返回true,否则返回false bool Unregister(T key); /// /// 获取注册表中所有的键值对 /// /// 包含所有注册键值对的只读字典 IReadOnlyDictionary GetAll(); /// /// 获取注册表中所有的值 /// /// 包含所有注册值的只读集合 IReadOnlyCollection Values(); }