ورود

View Full Version : کاربرد Annotation ها در Dependency Injection ؟



rahimi.mohamad24
شنبه 22 تیر 1392, 17:26 عصر
کاربرد Annotation ها در کجاست؟
آیا استفاده از آنها در Dependency Injection (پیاده سازی با Reflection , XML)، ضروری است؟اگر بشه در این مورد ازشون استفاده کرد ، چه فایده ای دارند؟؟

javaphantom
شنبه 22 تیر 1392, 18:27 عصر
کاربرد Annotation ها در کجاست؟
آیا استفاده از آنها در Dependency Injection (پیاده سازی با Reflection , XML)، ضروری است؟اگر بشه در این مورد ازشون استفاده کرد ، چه فایده ای دارند؟؟

annotation یک META DATA هست یعنی data about data یعنی اینکه شما اگر بخواهید یک سری اطلاعات در مورد یک سری اطلاعات دیگه بدی از مفهوم annotation استفاده می کنی.

دید توی کتابا طرف یک متن می نویسی که مثلا کلمه x رو می نویسی ولی برای کلمه x زیر همون صفحه یا جای دیگه ۵۰ سطر توضیح می ده. توی دنیای وب از لینک استفاده می شه. توی wiki پره. وقتی با annotation ها کار می کنی دقیقا یک جای دیگه پاورقی رو نوشتی وقتی کامپایلر برسه به اون می ره پا ورقی رو اعمال می کنه. یا یک رفتاری باهاش انجام می ده. مثلا comment توی کد یک نوع annotation هست که کامپایلر می فهمه باید بی خیال کامپایل کردن اون بشه. بی خیال شدن تعریفی هست که توی کامپایلر نوشته شده. همون پاورقی. اما بعضی از مواقع شما نیاز داری که زمان runtime پاورقی اجرا بشه و کامپایلر بره سراغ یک رفتار یا یک app دیگه. توی جاوا ۵ این داستان از طریق annotation ها حل شد.


dependency injection یک pattern هست که با کمک annotation پیاده سازی می شه هنگام runtime. ربطی هم به annotaion ‌نداره همنطور که گفتی از طریق یک xml یا یک property فایل یا هرچیزه دیگه قابل پیاده سازی هست

rahimi.mohamad24
شنبه 22 تیر 1392, 18:47 عصر
آیا استفاده همزمان از فایل xml و notation در dependency injection معنی داره؟
یا بهتره که وقتی از یکیشون استفاده کردم از دیگری استفاده نکنم؟

javaphantom
شنبه 22 تیر 1392, 21:42 عصر
آیا استفاده همزمان از فایل xml و notation در dependency injection معنی داره؟
یا بهتره که وقتی از یکیشون استفاده کردم از دیگری استفاده نکنم؟

هنگامی که شما از annotation استفاده می کنید برنامه شما باید کامپایل شود. پس تغییر دیگر امکان پذیر نیست اگر بخواهید تغییر بدهید باید دوباره به source code دسترسی داشته باشید.

استفاده از فایل که به زبان انسان قابل درک باشد مثل xml یا properties یا هر فرمت دیگه ای این امکان را به شما می دهد که نیازی به دسترسی به source code را نداشته باشید.

قانون کلی و اولیه برای استفاده از annotation و xml

جایی که تغییرات داثم وجود دارد چه کم چه زیاد. همیشه xml مانند تنظیم database.
جایی که تغییرات اصلا نیست یا نیاز امنیتی برای قابل فهم نبودن برای انسان. annotation. مانند map کردن جداول به entities در JPA.

javaphantom
شنبه 22 تیر 1392, 21:47 عصر
استفاده از note ها در زبانهای امروزی کمک به سرعت develop می کند. بسیاری از فریم ورکها جاوایی به سمت annotation رفته اند زیرا با کد یکپارچه می باشد و پشتیبانی آن برای تیم develop راحتر است و همچنین قابل فهم تر و آسانتر برای تیم developer می باشد.