Ինչպես է մուտքային հարցումը մշակվում handler-ի միջոցով մինչև domain մոդելը հեքսագոնալ ճարտարապետությունում, որը բաղկացած է երեք տարրերից՝ ադապտեր, պորտ և կենտրոնական հավելված։
sobes.tech AI
Պատասխան AI-ից
Հեքսագոնալ ճարտարապետության մեջ, մուտքային հարցումը առաջին հերթին հասնում է ադապտորին (adapter), որը ծառայում է որպես ինտերֆեյս արտաքին աշխարհի և ծրագրի միջև։ Օրինակ, Go-ում HTTP handler-ը ընդունում է հարցումը և վերածում այն պորտի (port) կոչի, որը հանդիսանում է ինտերֆեյս, սահմանելով գործողությունները, որոնք հասանելի են կենտրոնական ծրագրին:
Պորտը թաքննում է բիզնես տրամաբանությունը և սահմանում է փոխազդեցության պայմանագրերը։ Handler-ը կանչում է պորտի մեթոդները, փոխանցելով անհրաժեշտ տվյալները։ Կենտրոնական ծրագիրը (դոմեն մոդելը) իրականացնում է տրամաբանությունը, հիմնվելով պորտից ստացված տվյալների վրա, և վերադարձնում արդյունքը:
Օրինակ Go-ում:
// Պորտ
type UserService interface {
CreateUser(name string) error
}
// Ադապտեր (HTTP handler)
func CreateUserHandler(svc UserService) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
name := r.FormValue("name")
err := svc.CreateUser(name)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
w.WriteHeader(http.StatusCreated)
}
}
Այս կերպ, handler-ը հարմարեցնում է արտաքին հարցումը պորտի կոչին, որը իրականացվում է կենտրոնական ծրագրում (դոմեն մոդել):