انتقل إلى المحتوى
أمين أبوزيد
درس مخطط لهMID-060-L03

الكيانات وكائنات القيمة

  • الدرس 3 من 7
  • Mid-level
في هذا الدرس 4 موضوعات

هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.

نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.

في هذا الدرس

model identity versus value in Java.

الموضوعات المخطط لها

  • An entity has an identity that persists as its attributes change: Order with OrderId.
  • A value object has no identity; equal values are interchangeable: Money, Address. It is immutable.
  • Java records fit value objects well and validate in the compact constructor.
  • Entity equality is by ID; value equality is by all fields.
  • Prefer value objects over primitives (Money instead of BigDecimal plus a currency string).
تفاصيل المخطط المبدئي

عرض عملي

java
public record Money(BigDecimal amount, Currency currency) {
    public Money {
        if (amount.signum() < 0) throw new IllegalArgumentException("negative");
    }
    public Money plus(Money o) { /* same currency check */ return new Money(amount.add(o.amount), currency); }
}

اختبر فهمك

Which one is Money, entity or value object?

أظهر الإجابة

Value object.

التطبيق

طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.

المختبر والتمارين الاختبار

تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.

اكتب للبحث في المستويات والمراحل والوحدات والدروس.