From 78c39f3eda0ddfe3883395b5ce4bda0949fde891 Mon Sep 17 00:00:00 2001 From: Mo Huishou <1@lailin.xyz> Date: Tue, 30 Jan 2024 07:07:36 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20builder=20=E4=BD=BF=E7=94=A8=E5=B8=B8?= =?UTF-8?q?=E7=94=A8=E7=94=A8=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit close #13 --- 03_builder/builder.go | 37 +++++++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/03_builder/builder.go b/03_builder/builder.go index 1787153..9d26aaf 100644 --- a/03_builder/builder.go +++ b/03_builder/builder.go @@ -18,6 +18,7 @@ type ResourcePoolConfig struct { // ResourcePoolConfigBuilder 用于构建 ResourcePoolConfig type ResourcePoolConfigBuilder struct { + err error name string maxTotal int maxIdle int @@ -25,43 +26,55 @@ type ResourcePoolConfigBuilder struct { } // SetName SetName -func (b *ResourcePoolConfigBuilder) SetName(name string) error { +func (b *ResourcePoolConfigBuilder) SetName(name string) { + if b.err != nil { + return + } if name == "" { - return fmt.Errorf("name can not be empty") + b.err = fmt.Errorf("name can not be empty") } b.name = name - return nil } // SetMinIdle SetMinIdle -func (b *ResourcePoolConfigBuilder) SetMinIdle(minIdle int) error { +func (b *ResourcePoolConfigBuilder) SetMinIdle(minIdle int) { + if b.err != nil { + return + } if minIdle < 0 { - return fmt.Errorf("max tatal cannot < 0, input: %d", minIdle) + b.err = fmt.Errorf("max tatal cannot < 0, input: %d", minIdle) } b.minIdle = minIdle - return nil } // SetMaxIdle SetMaxIdle -func (b *ResourcePoolConfigBuilder) SetMaxIdle(maxIdle int) error { +func (b *ResourcePoolConfigBuilder) SetMaxIdle(maxIdle int) { + if b.err != nil { + return + } if maxIdle < 0 { - return fmt.Errorf("max tatal cannot < 0, input: %d", maxIdle) + b.err = fmt.Errorf("max tatal cannot < 0, input: %d", maxIdle) } b.maxIdle = maxIdle - return nil } // SetMaxTotal SetMaxTotal -func (b *ResourcePoolConfigBuilder) SetMaxTotal(maxTotal int) error { +func (b *ResourcePoolConfigBuilder) SetMaxTotal(maxTotal int) { + if b.err != nil { + return + } if maxTotal <= 0 { - return fmt.Errorf("max tatal cannot <= 0, input: %d", maxTotal) + b.err = fmt.Errorf("max tatal cannot <= 0, input: %d", maxTotal) } b.maxTotal = maxTotal - return nil } // Build Build func (b *ResourcePoolConfigBuilder) Build() (*ResourcePoolConfig, error) { + if b.err != nil { + return nil, b.err + } + if b.name == "" { return nil, fmt.Errorf("name can not be empty") }