Simple Library Management with OOP | پروژه کتابخانه با شی گرایی
📖توضیحات درس
📄جزوه
مفاهیم کلیدی
Record
یک ساختار دادهای در جاوا (از نسخه ۱۴ به بعد) که برای ایجاد کلاسهای حامل داده (Data Classes) استفاده میشود و به طور خودکار متدهایی مانند toString و equals را تولید میکند.
DTO (Data Transfer Object) الگویی برای انتقال داده بین لایهها؛ به گونهای که فقط اطلاعات مورد نیاز (و نه تمام جزئیات موجودیت) به لایههای بالاتر یا کاربر نمایش داده شود.
Shift to Left
فرآیندی در کار با آرایهها که پس از حذف یک المان، برای جلوگیری از ایجاد فضای خالی (null) در وسط آرایه، سایر المانها یک واحد به سمت چپ منتقل میشوند.
نکات مهم مصاحبهای
چرا از معماری چندلایه (Layered Architecture) استفاده میکنیم؟ برای رعایت اصل جداسازی وظایف (Separation of Concerns)؛ تا تغییر در نحوه ذخیرهسازی دادهها (Repository) تأثیری بر منطق برنامه (Service) نداشته باشد.
تفاوت رابطه One-to-Many و Many-to-Many در این پروژه چیست؟
اگر از هر کتاب فقط یک جلد داشتیم، رابطه یکبهچند بود. اما چون از هر عنوان کتاب چندین جلد موجود است و هر کاربر میتواند چندین کتاب بگیرد، رابطه چندبهچند است که از یک کلاس میانی (Loan) برای مدیریت آن استفاده میشود.
هدف از استفاده از Record به جای Class در لایه DTO چیست؟
کاهش کدنویسی تکراری (Boilerplate code) و ایجاد اشیای غیرقابل تغییر (Immutable) که امنیت دادهها را در هنگام جابهجایی بین لایهها تضمین میکند.
بیشتر بدانید
نکته فنی
استفاده از کلاس LocalDate و متد now() بهترین راه برای ثبت زمان تراکنشها در جاوا است. برای محاسبه اختلاف زمانی بین دو تاریخ، متد ChronoUnit.DAYS.between بسیار کاربردی است.
