- 简介
- 容器设计
简介
对象交给容器控制,对象与对象之间松耦合。
容器设计
// 注册单例对象func (p *Container) SetSingleton(name string, singleton interface{}) {p.Lock()p.singletons[name] = singletonp.Unlock()}// 获取单例对象func (p *Container) GetSingleton(name string) interface{} {return p.singletons[name]}// 获取实例对象func (p *Container) GetPrototype(name string) (interface{}, error) {factory, ok := p.factories[name]if !ok {return nil, ErrFactoryNotFound}return factory()}// 设置实例对象工厂func (p *Container) SetPrototype(name string, factory factory) {p.Lock()p.factories[name] = factoryp.Unlock()}
