Назад к вопросам
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()
}
}
Такой подход помогает централизовать создание и доступ к объектам, облегчая управление зависимостями.