ioc

package
v0.0.0-...-28af436 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 4, 2023 License: MIT Imports: 1 Imported by: 0

README

对象注册表

  • 在Go语言中,对象注册表(Object Registry)是一种用于存储和管理对象实例的数据结构。它提供了一个中心化的存储库,用于存储对象的引用和相关的元数据,以便在程序的不同部分中共享和访问这些对象。

  • 对象注册表可以用于多种目的,例如:

    1. 对象管理:对象注册表可以跟踪和管理程序中的对象实例,包括对象的创建、销毁和查找等操作。
    2. 依赖注入:对象注册表可以用于实现依赖注入(Dependency Injection),这是一种设计模式,使得对象的依赖关系在运行时被注入,而不是在代码中硬编码。通过对象注册表,可以将依赖对象注册到注册表中,并在需要时动态地注入到使用这些对象的类中。
    3. 对象定位:对象注册表可以用于在程序的不同部分中定位和访问对象实例。它提供了一种全局的访问点,使得代码中的任何位置都可以通过注册表获取到其他对象的引用。
  • 至于IoC(Inversion of Control,控制反转),它是一种设计原则,旨在降低代码之间的耦合度。在传统的程序中,一个类通常需要显式地创建和管理它所依赖的其他对象。而IoC通过将控制权反转,让框架或容器来负责对象的创建和注入,从而减少了类之间的直接依赖关系。

  • 在Go语言中,IoC可以通过对象注册表或其他容器技术来实现。通过使用IoC,开发者可以将对象的创建和管理委托给容器,使得代码更加灵活、可扩展和可测试。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type GinApiHandler

type GinApiHandler interface {
	Registry(r gin.IRouter)
}

Gin

type IocContainter

type IocContainter struct {
	// contains filtered or unexported fields
}

定义接口 就是定义逻辑 定义一个对象, IocContainter

func ApiHandler

func ApiHandler() *IocContainter

专门用于注册Controller对象

func Controller

func Controller() *IocContainter

专门用于注册Controller对象

func (*IocContainter) Get

func (c *IocContainter) Get(name string) any

func (*IocContainter) Init

func (c *IocContainter) Init() error

负责初始化所有的对象

func (*IocContainter) Registry

func (c *IocContainter) Registry(obj IocObject)

接收对象

func (*IocContainter) RouteRegistry

func (c *IocContainter) RouteRegistry(r gin.IRouter)

管理者所有的对象(Api Handler) 把每个 ApiHandler的路由注册给Root Router

type IocObject

type IocObject interface {
	// 对象的初始化
	Init() error
	// 对象名称
	Name() string
}

定义注册进来的对象的约束条件

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL