Что означает слово «эмбиент» в этом комментарии от CommonServiceLocator?

Я хочу предположить, что «окружающий контейнер» как-то связан с тем, что это статический класс, но это всего лишь предположение.

Или это относится к стандартной схеме? (т.е. мне действительно нужно прочитать эту книгу GoF от корки до корки)

namespace Microsoft.Practices.ServiceLocation
{
    /// <summary>
    /// This class provides the ambient container for this application. If your
    /// framework defines such an ambient container, use ServiceLocator.Current
    /// to get it.
    /// </summary>
    public static class ServiceLocator
    {
        private static ServiceLocatorProvider currentProvider;

        /// <summary>
        /// The current ambient container.
        /// </summary>
        public static IServiceLocator Current
        {
            get { return currentProvider(); }
        }

        /// <summary>
        /// Set the delegate that is used to retrieve the current container.
        /// </summary>
        /// <param name="newProvider">Delegate that, when called, will return
        /// the current ambient container.</param>
        public static void SetLocatorProvider(ServiceLocatorProvider newProvider)
        {
            currentProvider = newProvider;
        }
    }
}

person Aaron Anodide    schedule 19.04.2012    source источник


Ответы (1)


Да, «окружающий» должен означать «общий, доступный для всех».

Если вам нужна ссылка откуда-то из DI, найдите шаблон «Ambient Context», описанный, например, в книге Марка Симанна «Внедрение зависимостей в .NET».

person Wiktor Zychla    schedule 19.04.2012