// Copyright (c) Shenyang Leading Edge Intelligent Technology Co., Ltd. All rights reserved.

package container

// 组件信息管理器接口
type InformationManager interface {
	// 注册基本组件
	// 参数
	// 1.工厂方法
	// 2.是否是全局组件
	// 返回值:
	RegisterElement(interface{}, bool)
	// 注册服务组件
	// 参数
	// 1.工厂方法
	// 2.是否是全局组件
	// 返回值:
	// 1.服务组件信息
	RegisterService(interface{}, bool) *ServiceInformation
	// 获取指定组件信息
	// 参数
	// 1.组件接口类型
	// 返回值:
	// 1.组件信息
	Item(Interface) ComponentInformation
	// 获取组件列表
	// 返回值:
	// 1.组件列表
	Items() []ComponentInformation
}

// 使用默认实现创建组件信息管理器
// 返回值:
// 1.组件信息管理器
func NewInformationManager() InformationManager {
	return NewDefaultInformationManager()
}
