+2 امتیاز
قبل در برنامه نویسی توسط (15 امتیاز)
ویرایش شده قبل توسط

سلام آیا Spring IOC ماژولار می کند یا نه؟ اگر ماژولار می کند فرقش با OSGI چیه و اگر نمی کنه فرق کاری که pattern IOC انجام می دهد با ماژولار کردن چیه . فرقش ماژولار کردن با DLL چیه.

3 پاسخ

+5 امتیاز
قبل توسط (519 امتیاز)
سلام

سوال شما خیلی کلی است اما تلاش می کنم که جوابتون رو بدم ;)

ماژولاریتی را از دو جنبه می توان بررسی کرد :

1.مارژولاریتی در سطح کد که به نوعی کار دسته بندی و گروه بندی کلاس ها و کامپوننت های سورس کد شما می باشد.

2.مارژولاریتی در زمان اجرا که کار دشوارتری می باشد و پیچیدگی زیادی را به کدهای شما اضافه می کند، بدین معنی که شما می توانید در زمان اجرا یک ماژول به برنامه خود اضافه کنید، بدون این که اجرای برنامه را متوقف کنید. البته این کار با چالش های زیادی همراه است! و استفاده از آن در برخی موارد بسیار دشوار یا نا ممکن است.

OSGI تلاش می کند که ماژولاریتی در سطح کد و در زمان اجرا را انجام دهد.

Spring IOC اصول Inversion Of Control  را پیاده سازی می کند و ارتباطی با ماژولار کردن ندارد. (شاید بتوان گفت که ماژولاریتی در سطح کد را انجام میدهد)

Spring یک کتابخانه به نام Spring Dynamic Module دارد که برروی OSGI ساخته شده است بنابراین اگر تمایل به استفاده از SOGI و Spring دارید می تونید از اون استفاده کنید.

در مورد ماژولار کردن DLL اطلاعات خاصی ندارم! اما اصولا ماژولاریتی دسته بندی کلاس ها و کامپوننت های نرم افزار می باشد به گونه ای این کامپوننت ها و کلاس ها کم ترین وابستگی به یکدیگر رو داشته باشند. این کار توسعه و نگهداری نرم افزار را بسیار ساده تر می کند.

http://docs.spring.io/spring/docs/2.0.8/reference/beans.html

http://en.wikipedia.org/wiki/Inversion_of_control
قبل توسط (1.1هزار امتیاز)
این مورد رو بعنوان یک سوال جدید مطرح کنید لطفا.
قبل توسط (519 امتیاز)
این دو کتابخانه مطرح شده در سوال شما کاملا باهم تفاوت دارن! شاید اصلا نشه اون ها رو با هم مقایسه کرد!
(شاید بتوان گفت که ماژولاریتی در سطح کد را انجام میدهد) این جمله فقط برای وجه اشتراک OSGI و Spring IOC است وگرنه هر کدام از این دو کتابخانه برای کاربردهای خودشون قابلیت های فراوانی دارند.
اگه سوال جدیدی براتون پیش میاد می تونید تو سوال های جدید اون ها رو مطرح کنید.
اما من توصیه می کنم که کمی در مورد تعریف و کاربرد این کتابخانه ها گوگل کنید و سپس هر سوالی که براتون پیش اومد بپرسید.
+3 امتیاز
قبل توسط (1.1هزار امتیاز)

یکی از نقاط اشتراک OSGI و Spring IOC این است که هر دو از الگوی طراحی Dependency Injection استفاده می کنند و هر کدام این الگوی طراحی را به سبک خود پیاده سازی کرده اند (برای رسیدن به هدف خود)، تفاوت های اصلی پیاده سازی Dependency Injection در OSGI و Spring IOC به شرح زیر است:

  • در Spring IOC در زمان اجرا و پس از برقراری dependency در زمان اجرا، اجازه حذف dependency وجود ندارد به همین دلیل Spring IOC قابلیت runtime code deployment را از دست می دهد ولی OSGI این امکان وجود دارد که یک dependency برقرار شده در زمان اجرا حذف شود.
  • Spring IOC با استفاده از proxy ها، کامپوننت ها (bean) را inject می کند و از ارجاع مستقیم (direct reference) استفاده نمی کند.
+1 امتیاز
قبل توسط (1.5هزار امتیاز)
ویرایش شده قبل توسط

شاید این فیلم بتواند OSGI را بهتر برای ما تعریف کند.

سوالات مشابه

0 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
1 پاسخ 527 بازدید
+1 امتیاز
1 پاسخ 659 بازدید
+1 امتیاز
1 پاسخ 532 بازدید
+2 امتیاز
2 پاسخ 808 بازدید
0 امتیاز
0 پاسخ 304 بازدید
0 امتیاز
0 پاسخ 603 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
0 امتیاز
1 پاسخ 461 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط HA (347 امتیاز)
0 امتیاز
1 پاسخ 450 بازدید
...