Skip to main content

DDD理论的核心

失血

package main

type User struct {
name string
age int
}

func (u *User) GetName() string {
return u.name
}

func (u *User) SetName(name string) {
u.name = name
}

func (u *User) GetAge() int {
return u.age
}

func (u *User) SetAge(age int) {
u.age = age
}

func main() {
user := &User{}
user.SetName("Alice")
user.SetAge(30)
}

贫血

package main

type User struct {
name string
age int
}

func (u *User) GetName() string {
return u.name
}

func (u *User) SetName(name string) {
u.name = name
}

func (u *User) GetAge() int {
return u.age
}

func (u *User) SetAge(age int) {
u.age = age
}

func (u *User) IncrementAge() {
u.age++
}

func main() {
user := &User{}
user.SetName("Alice")
user.SetAge(30)
user.IncrementAge()
}

充血

package main

type User struct {
name string
age int
}

func (u *User) GetName() string {
return u.name
}

func (u *User) SetName(name string) {
u.name = name
}

func (u *User) GetAge() int {
return u.age
}

func (u *User) SetAge(age int) {
u.age = age
}

func (u *User) IncrementAge() {
u.age++
}

func (u *User) IsAdult() bool {
return u.age >= 18
}

func main() {
user := &User{}
user.SetName("Alice")
user.SetAge(30)
user.IncrementAge()
isAdult := user.IsAdult()
fmt.Println("Is adult:", isAdult)
}

胀血

package main

import (
"fmt"
)

type User struct {
name string
age int
}

func (u *User) GetName() string {
return u.name
}

func (u *User) SetName(name string) {
u.name = name
}

func (u *User) GetAge() int {
return u.age
}

func (u *User) SetAge(age int) {
u.age = age
}

func (u *User) IncrementAge() {
u.age++
}

func (u *User) IsAdult() bool {
return u.age >= 18
}

func (u *User) Save() {
// 持久化逻辑,例如保存到数据库
fmt.Printf("Saving user: %s, age: %d\n", u.name, u.age)
}

func main() {
user := &User{}
user.SetName("Alice")
user.SetAge(30)
user.IncrementAge()
isAdult := user.IsAdult()
fmt.Println("Is adult:", isAdult)
user.Save()
}

评论区