C
Size: a a a
C
C
C
P
x
type BLProcessor struct {
State string
SomeEmbeddedType *SomeEmbeddedType
}
func (b *BLProcessor) Process(bla string) string {
if bla == "value" {
b.State = "process"
b.SomeEmbeddedType = &SomeEmbeddedType{
Field: bla,
}
return b.SomeEmbeddedType.doSome().Result
}
return ""
}
type SomeEmbeddedType struct {
Field string
}
func (s SomeEmbeddedType) doSome() *Result {
return &Result{
Result: s.Field + "1",
}
}
type Result struct {
Result string
}
type Repo interface {
GetSome(s string) (string, error)
SaveSome() error
}
func processReq(db Repo, bl *BLProcessor) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
someValue := r.URL.Query().Get("value")
// этот парень, например, сбегал в бд
outDB, err := db.GetSome(someValue)
if err != nil {
println(err)
return
}
// этот парень распедалил бизнесс-логику
out := bl.Process(outDB)
w.Write([]byte(out))
}
}
State
и SomeEmbeddetType
, если вы их используете единожды внутри одного метода.P
C
State
и SomeEmbeddetType
, если вы их используете единожды внутри одного метода.C
C
C
P
x
P
x
P
C
P
P
x