الكيانات وكائنات القيمة
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
model identity versus value in Java.
الموضوعات المخطط لها
- An entity has an identity that persists as its attributes change:
OrderwithOrderId. - 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 (
Moneyinstead ofBigDecimalplus a currency string).
تفاصيل المخطط المبدئي
عرض عملي
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.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.