Sobes.tech
Назад к вопросам
Junior — Middle
78

Можешь рассказать о том, что такое Registry и как оно применяется?

Ответ от нейросети

sobes.tech AI

Registry — это паттерн проектирования, который представляет собой централизованное хранилище объектов или сервисов, к которым можно получить доступ из разных частей программы. В Go его часто используют для управления зависимостями или для хранения конфигураций и сервисов, чтобы избежать глобальных переменных и упростить доступ к общим ресурсам.

Пример простого Registry в Go:

package main

import "fmt"

type Service interface {
    Do()
}

type Registry struct {
    services map[string]Service
}

func NewRegistry() *Registry {
    return &Registry{services: make(map[string]Service)}
}

func (r *Registry) Register(name string, service Service) {
    r.services[name] = service
}

func (r *Registry) Get(name string) Service {
    return r.services[name]
}
}

// Пример сервиса
 type MyService struct{}

func (s *MyService) Do() {
    fmt.Println("Service is doing something")
}

func main() {
    registry := NewRegistry()
    registry.Register("myService", &MyService{})

    service := registry.Get("myService")
    if service != nil {
        service.Do()
    }
}

Такой подход помогает централизовать создание и доступ к объектам, облегчая управление зависимостями.