Sobes.tech
Junior — Middle

Anemik model tushunchasi va uning mohiyatini tushuntirib bera olasizmi?

sobes.tech AI

AIdan javob

Anemik Model (Anemic Domain Model) ob'ektga yo'naltirilgan dizaynda anti-pattern bo'lib, unda ob'ektlar faqat ma'lumotlar (maydonlar)ni o'z ichiga oladi, biznes mantiqi esa bu ob'ektlardan tashqarida, masalan, xizmatlar yoki nazoratchilar (kontrollerlar)da amalga oshiriladi.

Anemik modelning mohiyati shundaki, domen ob'ektlari 'silliq' ma'lumotlar tuzilmalariga aylantiriladi, bu esa ob'ektga yo'naltirilgan dizayn prinsiplarga zid bo'lib, unda ma'lumotlar va xulq-atvor birga inkapsulyatsiya qilinishi kerak. Bu kamroq qo'llab-quvvatlanadigan va kengaytiriladigan kodga olib kelishi mumkin.

Anemik model misoli:

class User {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }
}

// Yoshi tekshirish mantiqi alohida ajratilgan
func isAdult(user: User) -> Bool {
    return user.age >= 18
}

Bundan farqli o'laroq, boy modelda (Rich Domain Model), isAdult metodi User sinfining bir qismi bo'lardi.