All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.flagwind.services.ServiceProvider Maven / Gradle / Ivy

There is a newer version: 1.0.9
Show newest version
package com.flagwind.services;

import java.util.List;

public interface ServiceProvider {
    /**
     * 获取服务仓储实例。
     * @property
     */
    ServiceStorage  getStorage();

    /**
     * 注册一个服务至服务容器中。
     * @param  name 服务名称。
     * @param  {Function} serviceType 服务类型。
     * 
     */
   void register(String name,  ClassserviceType);
    /**
     * 注册一个服务至服务容器中。
     * @param  name 服务名称。
     * @param  {Function} serviceType 服务类型。
     * @param  {Array} contractTypes? 契约类型。
     * 
     */
    void register(String name,Class serviceType, Class[] contractTypes);
    /**
     * 注册一个服务至服务容器中。
     * @param  name 服务名称。
     * @param  service 服务实例。
     * 
     */
    void register(String name,Object service);
    /**
     * 注册一个服务至服务容器中。
     * @param  name 服务名称。
     * @param  service 服务实例。
     * @param  {Array} contractTypes? 契约类型。
     * 
     */
   void register(String name,Object service,Class[] contractTypes);
    /**
     * 注册一个服务至服务容器中。
     * @param  {Function} serviceType 服务类型。
     * @param  {Array} contractTypes? 契约类型。
     * 
     */
   void register(ClassserviceType, Class[] contractTypes);
    /**
     * 注册一个服务至服务容器中。
     * @param  service 服务实例。
     * @param  {Array} contractTypes? 契约类型。
     * 
     */
   void register(Object service, Class[] contractTypes);

    /**
     * 移除指定名称的服务。
     * @param  name 服务名称。
     * 
     */
   void unregister(String name);

    /**
     * 根据指定服务名称获取服务实例。
     * @param  name 服务名称。
     * @return any
     */
      T  resolve(String name);

    /**
     * 根据指定服务类型获取服务实例。
     * @param  {Function|string} serviceType 服务类型。
     * @return T
     */
     T resolve(Class serviceType);

    /**
     * 根据指定服务类型获取所有服务实例。
     * @param  {Function} serviceType
     * @return IEnumerable
     */
       Iterable resolveAll(Class serviceType);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy