السلام عليكم
سؤال محيرني :
لماذا لانستخدم
@Serializable
class A{
}بدلاً عن
class A implements Serializable{
}؟
السلام عليكم
سؤال محيرني :
لماذا لانستخدم
@Serializable
class A{
}بدلاً عن
class A implements Serializable{
}؟
السلام عليكم
For example, I have tended to make extensive use of Marker Interfaces over the last few years. These are interfaces that may not contain any methods, but are used to denote a particular concept or entity within an application. This is not a particularly radical idea and indeed there is an example of such an interface in the Java language itself - the java.io.Serializable interface. This interface is a marker interface in that it does not require any methods to be implemented but indicates that a class is capable of being serialized via the Java Serialization mechanism. Such marker interface can now be replaced with annotations. We can define our own annotation that can be used to mark a class as being a particular concept or entity etc.
SCJP 5.0
أهلا اخي مالك ،
كلامك صحيح ولكن انا قصدت لماذا لاتأتي من صن نفسها ، مالسبب لعدم صياغة الماركر انترفيس على شكل annotation
أعتقد أن القضية متعلقة بالـ Design Pattern ...يسمى هذا القالب بـ ..Marker Pattern
أظن أن هذا هو السبب ...
إقرأ عن الـ Marker Interface في هذه الصفحة
تم تعديل هذه المشاركة بواسطة malek_sa في 19 أكتوبر 2007 في 00:16
SCJP 5.0
السلام عليكم
كل عام و انتم بخير
راي الشخصي ما فيه أي مانع أخي عيسى وكما قلت Interface هنا مستخدمه كـ Marker بس ودي أقول لك شيء و أعذرني لكونك تقدر لغة الجافا مرره،
فيه أشياء كثيره في الجافا ما هم راضين يعدلونها مثل XML شيء معقد في الجافا تقول إختراع أيضاً Date and Time وأيضاُ عندك Closures اللي ودهم يضيفونها بس مستحين، و لولا Groovy و إلا ما فكروا يضيفونها في جافا 7.
بشكل عام لغة الجافا دائما تميل إلى البطأ في التطور على النقيض مع التقنيات المعتمدة عليها و التي تميل الى التطور بشكل رهيب جداُ،
بينما في المقابل في الدوت نت مثلاُ اللغات تميل إلى التطور بشكل أكبر من التقنيات أو متزامنه مع تطور تقنياتها و التي تأتي تقريبا من مصدر واحد، و فيه من يرى في ذلك مساوئ و محاسن
مشكور أخي عيسى على الملاحظة الذكية
nawaf227
نحمد الله أن اصحاب الجافا عقلاء و ليسوا كأصحاب الدوت نيت المخابيل !!!!!!
كم واحد من أهل المنتدي الكرام عمل على دوت نيت 2005 و عرف كل مزاياها و إستخدمها ؟؟ هل تري أن ميكروسفت أنتجت منتجها الجديد دوتنيت 2008 !!!!!
بس يا أخي العزيز، ميكروسوفت دي شركه بتقلب الدنيا بمزاجها و اللي عوزا تعمله بتعمله، يعني طزززز و مليون طزززز في المبرمج عرف 2005 ولا عنه ما عرف موش مهم المهم إنها تربح و خلاص.
أنا واحد صاحبي من الدارسين للدوت نيت قلي إن ميكروسوفت يتعمل الحاجه و في النسخه الجديده بتلغيها ، طب المبرمج الغلبان زنبه إيه يتعلم حاجات و بعد كده يستغني عنها !!! هي دي ميكروسفت !!!!!
أخي العزيز مبتدئ جافا
في البداية أنا أحترم رأيك و وجهة نظرك،،
اسأل نفسك نفس السؤال لماذا annotations ؟؟
مهندسين الجافا أقروا أن طريقة استخدام XML مثل ejb-jar.xml عقيمة و أيضاً استخدام Marker interfaces أعقم و بالتالي قرروا إضافة annotation بالتالي تم التغيير و انت حر أيها المبرمج الآن من اللذي سوف يكتب EJB 3.0 من دون annotation الآ المختل، فمثلاُ EJB 3.0 تعتبر نقله نوعيه كبيره خصوصاً JPA ولا فيه مقارنه بين النسخ الأول و هذه النسخة؟؟؟؟ فالأشخاص الذين يعرفون EJB 2.X ليس ليس بالضروره أن يعرفوا EJB 3.0 بشكل سريع ومباشر. لماذا قاموا بالتغيير؟؟؟ لأنه الأفضل
الذي أحاول أن أقوله انه هنالك بعض العقبات التي يجب أن تحل في لغة الجافا خذ مثلاُ Call by fucntion الموجود في C و ++C قامت مايكروسوفت بتطويره و إضافته إلى لغاتها و سمته delegates و من ثم قامت بعمل anonymous methods و من ثم Lambda Expressions.
و للمعلوميه: anonymous methods هي تقريباُ Closures الموجوده في Groovy و التي سوف تضاف في جافا 7
في المقابل الدوت نت لديها الكثير من القصور خصوصاُ في ما يخص تطوير برامج Enterprise Applications
التطوير سواء في الجافا أو الدوت نت دائما بهدف نشره و تطويره و على العموم جميع الشركات تسعى للتطوير لبيع منتجاتها، بالنسبة لكلامك ان مايكروسوفت تربح فسؤالي لك مالذي تربحه مايكروسوفت من الدوت نت بيع فيجوال ستديو، فيه نسخة من ببلاش،،
الفكره أخي أنهم يردون زيادة عدد المطورين في هذه التقنية و بالتالي زيادة البرامج التي تعمل على windows و نفسه في المقابل مثلاُ صن تدعم لغة الجافاً و تستفيد من بيع برامج معتمتده على هذه التقنية و غيرها من الشركات مثل IBM.
فيه ملاحظه: طبعاُ لا أستطيع مقارنة مايكروسوفت ب صن فشركة صن ساهمت بشكل كبير في مجال Open Source بعكس شركة مايكروسوفت وبالتالي قد تبدو أن مايكروسوفت شركة جشعه في هذا السياق.
بالنسبة لقولك أن المبرمجين يتعبون بتعلم شيء ثم تأتي الشركات و تقوم بالتغيير،
فأعجب أن شخص مثلك يقول هذا؟؟؟
أقولها إذا لم يستطع الشخص الذي يطلق على نفسة مبرمح تعلم تلك التغييرات البسيطة فبصراحة لا أتوقع انه يسمى مبرمج، و هنا يأتي الفرق بين المحترف و الهاوي، لتكون شخص محترفاُ يجب أن تتابع التعلم ولا تكتفى بأن تتعلم كتابة كود رأيت شخصاُ يعرضه أو يكتبه.
السلام عليكم
الف شكر لكم اخواني ، مالك ، مبتدئ ، نواف
لايجب علينا ان نقارن وانا لست متعصب للجافا ،
ارغب بتعلم الدت نيت وهي مسألة وقت باذن الله
بالنسبه للClosure او بالاصح pointer to method لاأدري ولكن اعتقد انها تزيد تعقيد اللغه
لأنه اهم ماتتميز به الجافا سهولة الاستخدام وبساطة الكود
وباستطاعتك الاستغناء عنها عن طريق Groovy مثل ماذكر اخي نواف او حتى بباكج من اباتشي ناسي اسمها
EJB3 الجميع يجمع على سهولتها مقارنة بالنسخ القديمه في DD Deployment Descriptor وبامكانك الاستغناء كلياً عن EJB والاعتماد على light weight container
حقيقة بدأت اتضايق من كلامي عن j2ee لأنني لا أبرمج بها بالعمل ،ان كنت تشتغل على الجافا في عملك وتطور تقنيات من أ - ي فستجد لماذا هذا ولماذا ذاك
ولكن ان تعتمد على فقط قرائتك وتطبيقك على تقنيات الجافا ، فهو الجحيم بعينه !
طبعا أخ عيسي، ففي العمل أنت تصبح محترفا ، أما بدون العمل فأنت هاوي مهما كانت درجت قوتك في اللغه،،،
على فكره أنا برضه مكنتش شغال بال J2EE ولا حتي J2SE
أنا كنت شغال دوت نت
جزاكم الله خير
إستمتعنا بالحديث و النقاش معكم أخي عيسى و مبتدئ الجافا وجميع من شاركوا
جميل النقاش في هذا الموضوع وشكراً لكم جميعاً
شكرا لك
هذا الموضوع مغلق.