测试代码
package mainimport ( "github.com/jolestar/go-commons-pool" "fmt")type MyPoolObject struct { Name string}type MyObjectFactory struct {}func (f *MyPoolObject) Print() { fmt.Println(f)}func (f *MyObjectFactory) MakeObject() (*pool.PooledObject, error) { return pool.NewPooledObject(&MyPoolObject{}), nil}func (f *MyObjectFactory) DestroyObject(object *pool.PooledObject) error { //do destroy return nil}func (f *MyObjectFactory) ValidateObject(object *pool.PooledObject) bool { //do validate return true}func (f *MyObjectFactory) ActivateObject(object *pool.PooledObject) error { //do activate return nil}func (f *MyObjectFactory) PassivateObject(object *pool.PooledObject) error { //do passivate return nil}func main() { pool := pool.NewObjectPoolWithDefaultConfig(pool.NewPooledObjectFactorySimple( func() (interface{}, error) { return &MyPoolObject{}, nil })) obj, _ := pool.BorrowObject() obj.(*MyPoolObject).Name = "1111" obj.(*MyPoolObject).Print() pool.ReturnObject(obj)}