برنامه نویسی جاوا | Java
5.7K subscribers
1.11K photos
158 videos
379 files
1.18K links
🎓آکـــــــــادمی جاواپـــــــــــــــرو
آموزش پیش نیازهای برنامه نویسی
آموزش مقدماتی تا پیشرفته جاوا
آموزش Spring Boot
سفارش پروژه ، دوره و تدریس خصوصی: @rzutab
مشاهده دوره ها و ثبت نام👇
wwww.academyjavapro.com
گروه جاوا : @group_javapro
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی کدهای کارآموز رو میبینم ...



➡️اشتراک 👍لایک 💬کامنت


⚡️ @javapro_ir
✈️@group_javapro
Please open Telegram to view this post
VIEW IN TELEGRAM
🎯 الگوی استراتژی (Strategy Pattern) چرا محبوب توسعه‌دهندگان ارشد جاوا است؟

در اپلیکیشن‌های واقعی جاوا، معمولاً نیاز داریم براساس شرایط مختلف، رفتار متفاوتی پیاده‌سازی کنیم؛ مثل:

محاسبه تخفیف براساس نوع کاربر

انتخاب روش پرداخت

محاسبه مالیات براساس کشور


استفاده از شرط‌های تو در تو (if-else) کد را پیچیده، غیرقابل تست و توسعه‌ناپذیر می‌کند.

الگوی استراتژی راه‌حل این مشکل است
با این الگو، هر منطق (مثل تخفیف یا پرداخت) در یک کلاس جداگانه پیاده‌سازی می‌شود و می‌توان آن را به‌راحتی جایگزین کرد بدون تغییر در کد اصلی.

🔍 مزایای مهم الگو:
• حذف شرط‌های پیچیده
• تست‌پذیری آسان
• افزودن رفتار جدید بدون تغییر در کلاس‌های قبلی (اصل باز/بسته)
• پیاده‌سازی ساده در Spring Boot و جاوا ۸ با Lambda

📌 نمونه کاربردی:
در سیستم تخفیف:

کاربر مهمان → بدون تخفیف

عضو عادی → ۱۰٪ تخفیف

عضو ویژه → ۲۰٪ تخفیف

هرکدام در کلاس جدا تعریف می‌شود و فقط در زمان نیاز تزریق می‌شود.


🌍 مثال دیگر:
در سیستم فاکتور در Spring Boot، محاسبه مالیات براساس کشور با پیاده‌سازی هر استراتژی در کلاس جدا انجام می‌شود. مثلاً:

ایران → ۱۸٪

آمریکا → ۷٪

امارات → بدون مالیات


📎 چه زمانی از Strategy Pattern استفاده کنیم؟
✔️ زمانی که رفتارهای مختلف برای یک وظیفه دارید
✔️ وقتی منطق‌ها نیاز به تست و توسعه مستقل دارند
✔️ وقتی قصد دارید از شرط‌های پیچیده اجتناب کنید

🚫 چه زمانی استفاده نکنیم؟
✖️ اگر فقط یک شرط ساده دارید
✖️ وقتی منطق تغییر نمی‌کند یا قابل توسعه نیست

🏁 نتیجه‌گیری:
الگوی Strategy یکی از کاربردی‌ترین الگوها برای ساخت کد تمیز، منعطف و قابل نگهداری در جاوا است. مخصوصاً وقتی با Spring Boot یا Lambda ترکیب شود، بسیار قدرتمندتر و ساده‌تر خواهد بود.

➡️اشتراک 👍لایک 💬کامنت


⚡️ @javapro_ir
✈️@group_javapro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
HW4.zip
477.9 KB
سورس کد پروژه دانشجویی بازی کاملا گرافیکی و زیبا Rapid Roll به زبان جاوا هست
بازی دارای آپشن های امتیاز دهی - منو-بهترین زمان-بهترین امتیاز-تایمر-جان(قلب)-شروع مجد بازی-استارت و استاپ بازی و....
محیط بازی Rapid Roll
HW7.zip
39.6 KB
سورس کد پروژه دانشجویی بازی کاملا گرافیکی و زیبا Pacman به زبان جاوا هست
بازی دارای آپشن های امتیاز دهی جان(قلب)و....
💻هایبرنت چیست؟

پاسخ: هایبرنت یک فریم‌ورک قدرتمند و متن‌باز از نوع ORM (نگاشت شیء به رابطه) برای زبان جاوا است. این ابزار عملیات پایگاه داده را ساده می‌کند، چرا که به توسعه‌دهنده اجازه می‌دهد کلاس‌های جاوا را به جدول‌های پایگاه داده نگاشت کند و عملیات CRUD را بدون نیاز به نوشتن دستی SQL انجام دهد.

مثال:
@Entity
public class Product {
@Id
private Long id;
private String name;
private double price;
}


هایبرنت به‌صورت خودکار ایجاد جدول، درج، به‌روزرسانی و حذف داده‌ها را براساس این کلاس انجام می‌دهد.


➡️اشتراک 👍لایک 💬کامنت


⚡️ @javapro_ir
✈️@group_javapro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👾1
عکس محیط بازی Pacman به زبان جاوا
HW5.zip
1.2 MB
سورس کد پروژه دانشجویی بازی کاملا گرافیکی و زیبا BrickBreaker به زبان جاوا هست

بازی در 4 محیط دارای آپشن های امتیاز دهی و قابلیت تیراندازی-تایمر-جان(قلب)-شروع مجد بازی-استارت و استاپ بازی و....
تصویر محیط بازی BrickBreaker به زبان جاوا
تصویر محیط بازی هواپیمای جنگی به زبان جاوا
HW6.zip
1.4 MB
سورس کد پروژه دانشجویی بازی کاملا گرافیکی و زیبا Pacman به زبان جاوا هست
بازی دارای آپشن های امتیاز دهی جان(قلب)و....
⭐️مزایای استفاده از هایبرنت چیست؟

پاسخ:

کاهش کدنویسی تکراری SQL
مستقل از نوع پایگاه داده
پشتیبانی از کش برای بهبود عملکرد
مدیریت تراکنش‌ها و بارگذاری تنبل (Lazy Loading)
تولید خودکار اسکیمای پایگاه داده (DDL)
پشتیبانی از HQL (زبان پرس‌وجوی هایبرنت)

هایبرنت به توسعه‌دهندگان کمک می‌کند تا به‌جای درگیر شدن با کدهای تکراری JDBC، روی منطق کسب‌وکار تمرکز کنند.

➡️اشتراک 👍لایک 💬کامنت


⚡️ @javapro_ir
✈️@group_javapro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Channel name was changed to «آموزش برنامه نویسی جاوا»
This media is not supported in your browser
VIEW IN TELEGRAM
کار تیمی ...


➡️اشتراک 👍لایک 💬کامنت


⚡️ @javapro_ir
✈️@group_javapro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Channel name was changed to «آموزش برنامه نویسی جاوا»
🟪تفاوت بین متدهای ‎get()‎ و ‎load()‎ در هایبرنیت چیست؟

پاسخ:

🔵 مثال:
Product p1 = session.get(Product.class, 1L); // اتصال فوری به دیتابیس
Product p2 = session.load(Product.class, 2L); // بازگرداندن یک proxy

🟣زمانی که مطمئن نیستید شیء موردنظر وجود دارد یا نه، از ‎get()‎ استفاده کنید.


⚡️ @javapro_ir
✈️@group_javapro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Channel name was changed to «آموزش برنامه نویسی جاوا»
Channel name was changed to «بدو آموزش برنامه نویسی😍»
💡استراتژی‌های مختلف Fetch در Hibernate چیست؟

پاسخ:
هابرنیت (Hibernate) از دو نوع اصلی بارگذاری داده (Fetching) پشتیبانی می‌کند:

۱. این Eager Fetching — موجودیت‌های مرتبط را بلافاصله بارگذاری می‌کند.
۲. و این Lazy Fetching — فقط زمانی داده‌های مرتبط را بارگذاری می‌کند که به آن‌ها دسترسی پیدا شود (پیش‌فرض برای مجموعه‌ها).

@OneToMany(mappedBy = "category", fetch = FetchType.LAZY)
private List<Product> products;


استفاده از Lazy Fetching باعث بهبود عملکرد می‌شود، چون انجام joinهای سنگین را تا زمانی که واقعاً نیاز باشد به تأخیر می‌اندازد.


⚡️ @javapro_ir
✈️@group_javapro
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3