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()
}