هل هذه مترادفة أم مجموعة فرعية من بعضها البعض أم مختلفة تمامًا؟

StackOverflow https://stackoverflow.com/questions/3219698

سؤال

هل المفاهيم المذكورة في عنوان السؤال مترادفة إلى حد ما؟أين تكمن الاختلافات الرئيسية (السياق، البنية، ...) وهل يمكن اعتبار إحداها مجموعة فرعية من الأخرى؟فيما يلي بعض التعريفات المختصرة المأخوذة من ويكيبيديا.

POJO (كائن Java القديم العادي) ويكيبيديا

في برنامج الحوسبة ، يعد Pojo اختصارًا لكائن Java القديم العادي.يتم استخدام الاسم للتأكيد على أن كائن معين هو كائن Java عادي ، وليس كائنًا خاصًا ، ولا سيما ليس جافابين مؤسسة.صاغ هذا المصطلح مارتن فاولر وريبيكا بارسونز وجوش ماكنزي في سبتمبر 2000:

"We wondered why people were so against using regular objects in their
 systems and concluded that it was
 because simple objects lacked a fancy
 name. So we gave them one, and it's
 caught on very nicely."

جافا فول ويكيبيديا

Javabeans هي مكونات برامج قابلة لإعادة الاستخدام لـ Java والتي يمكن معالجتها بصريًا في أداة البناء.من الناحية العملية ، فهي فصول مكتوبة بلغة برمجة Java تتوافق مع اتفاقية معينة.يتم استخدامها لتغليف العديد من الكائنات في كائن واحد (الفول) ، بحيث يمكن تمريرها ككائن فول واحد بدلاً من كائنات فردية متعددة.جافابان هو كائن Java قابل للتسلسل ، وله مُنشئ لاخار ، ويسمح بالوصول إلى الخصائص باستخدام أساليب Getter و Setter.

كائن القيمة ويكيبيديا

كائن نقل البيانات (DTO) ، المعروف سابقًا باسم كائنات القيمة أو VO ، هو نمط تصميم يستخدم لنقل البيانات بين الأنظمة الفرعية لتطبيق البرنامج.غالبًا ما يتم استخدام DTOs بالاقتران مع كائنات الوصول إلى البيانات لاسترداد البيانات من قاعدة بيانات.

كائن الأعمال ويكيبيديا

كائن العمل هو نوع من الكيان الواضح كونه ممثلًا داخل طبقة العمل في برنامج كمبيوتر موجه نحو كائن N.

متعلق ب:

الفرق بين DTO وVO وPOJO وJavaBeans؟ ما الفرق بين JavaBean و POJO؟ ددد:ما فائدة الفرق بين الكيانات وكائنات القيمة؟

هل كانت مفيدة؟

المحلول

ليست كل هذه التصنيفات ذات صلة.هذا هو فهمي:

  • POJO هو ما يوحي به اسمه - كائن Java قديم عادي.لا يوجد شيء خاص حول هذا الموضوع.وهذا هو بالضبط ما نريد أن ننقله عندما نقول أن الكائن هو POJO.تستخدم معظم التطبيقات اليوم بعض أنواع الأطر الأساسية، ومع هذه الأطر تأتي متطلبات على الكائنات التي ستتكامل مع الإطار - يجب على الكائن تنفيذ واجهة أو توسيع فئة.عندما نقول أن الكائن هو POJO، فإننا نعني أنه مجرد كائن عادي وليس له أي تبعيات على أي إطار عمل.

  • JavaBean عبارة عن فئة Java تتبع اصطلاحات معينة كما هو موضح في سؤالك.غالبًا ما يتم تكليف مثل هذه الكائنات من خلال أطر عمل معينة تستخدم الانعكاس لاكتشاف خصائص الكائن (التي يمكن الوصول إليها من خلال الحروف/المحددات) ومعالجتها على سبيل المثال.الفاصوليا المعرضة لـ JSPs وفاصوليا الربيع وما إلى ذلك.الشيء الجيد في JavaBeans هو أنها لا تزال POJOs.على الرغم من أنها تتبع اصطلاحات معينة، إلا أنها لا يتم تعريفها بواسطة أي إطار عمل معين ولكن يتم تحديدها بواسطة معيار Sun Javabean ولا تزال الفئات عبارة عن فئات Java عادية لا علاقة لها بفئات أو واجهات أي إطار عمل تابع لجهة خارجية.

  • تشير كائنات الأعمال إلى الكائنات التي تمثل كيانات مجال عملك.عادةً ما تكون هذه العناصر موجودة في طبقة عملك - الطبقة التي يوجد بها منطق الأعمال بالكامل.عادةً ما يتم تعيين هذه الكائنات إلى كيانات تخزين الثبات، على سبيل المثال.الجداول.يمكن أن تكون هذه الكائنات POJOs وJavaBeans وEJBs وما إلى ذلك.

  • كائنات القيمة هي نوع من نمط التصميم.في بعض تطبيقات الويب الصغيرة، لديك خيار استخدام كائنات الأعمال الخاصة بك في طبقة الويب أيضًا.ومع ذلك، في التطبيقات الأكبر حجمًا أو تطبيقات J2EE، يمكنك تحديد كائنات القيمة لنقل المعلومات من طبقة الأعمال إلى طبقة الويب.ولهذا السبب يطلق عليها أيضًا اسم كائنات نقل البيانات (DTOs).تحتوي هذه الكائنات عادةً على السمات المطلوبة في طبقة الويب فقط وتترك سمات كائنات الأعمال المخصصة لاستهلاك طبقة الأعمال خلفها.قد يكون لديهم أيضًا سمات "محسوبة" يتم إنشاؤها في طبقة الأعمال.يساعد استخدام هذه الأنماط على فصل طبقات الأعمال والويب.

نصائح أخرى

وهنا رأيي:

  1. كائنات العمل هو مصطلح عام للفكرة التجريدية التي تمثل مشكلتك.يمكنك تنفيذها بأي لغة.في Java ، لديك خيارات إضافية لاتخاذها ، لأنها يمكن أن تكون pojos أو eJBs ، قابلة للتغيير أو غير قابلة للتغيير.
  2. يتم استخدام كائنات القيمة أو DTOs لنقل البيانات بين الطبقات.عادة ما تكون غير قابلة للتغيير.يمكن تنفيذها على أنها POJOs أو Java Beans.فكر فيهم كمجموعة فرعية أخرى من POJOs.
  3. تتوافق Java Bean مع مواصفات Sun الأصلية.كان الهدف منها توفير واجهة تسمح لهم بالتوصيل إلى بيئة تطوير متكاملة على طراز VB بسهولة.فكر في هذه كمجموعة فرعية من POJO.
  4. يرتبك الناس أحيانًا بشأن الفرق بين Java Beans وEnterprise Java Beans.تعد Java Beans جزءًا من مواصفات Java 1.0 الأصلية، والمقصود منها أن تكون مثل مكونات VB (هل تتذكر "Bean Box"؟).كانت Enterprise Java Beans عبارة عن مواصفات تلت ذلك تصف كيفية قيام كائنات Java الخاصة بتنفيذ واجهات محددة للتفاعل مع خادم تطبيقات Java EE.كان خادم التطبيق بمثابة مراقب المعاملات لبنية المكونات الموزعة التي من شأنها التعامل مع الترابط، والثبات، والتجميع، ودورة حياة الكائن، والمراسلة، والتسمية، وما إلى ذلك.تعد EJBs مجموعة فرعية خاصة جدًا من كائنات Java التي تعمل فقط ضمن سياق خادم تطبيق Java EE.
  5. يمكن تنفيذ POJO ليتوافق مع معيار Java Bean، ولكنه ليس شرطًا.أي كائن Java مؤهل ليكون POJO.كان المقصود في الأصل تمييزها عن الإصدار 2.0 من EJB، والذي يتطلب عدة واجهات من أجل التعامل مع خادم تطبيق Java EE بشكل صحيح.

الأسئلة هي ما إذا كان من الخطأ استخدام بعض هذه الكلمات كمرادفات (مثلما سمعت أن بعض الأشخاص يفعلون ذلك) وما إذا كان من الممكن اعتبار تصنيف معين مجموعة فرعية أو أخرى.

ومن الخطأ استخدام هذه المصطلحات كمرادفات.ومن الواضح أن لديهم معاني متميزة.توضح التعريفات المقتبسة (وتلك المقدمة في الإجابات الأخرى) ذلك.

ومع ذلك، إذا كان من الصحيح غالبًا استخدام العديد من هذه المصطلحات (أو حتى جميعها) لوصف نفس الكائن أو الكائنات.كل ذلك هو مسألة منظور؛أي.ما هو جانب الكائن (الأشياء) الذي تحاول التأكيد عليه.

التوليف (من الإجابات المقدمة):

  • بوجو:كائن عادي بدون أي تبعيات تجاه أي إطار عمل.يمكن تكييفه ليتوافق مع معيار Java Bean دون أن يكون متطلبًا على هذا النحو.
  • JavaBean:كائن يتوافق مع مواصفات Sun JavaBean أو Java 1.0 (راجع "Bean box").كان الهدف منها في الأصل توفير واجهة بحيث يمكن توصيلها بـ IDE على طراز VB دون صعوبة تذكر.يمكن اعتبارها مجموعة فرعية من POJOs وتظل مستقلة عن الأطر.ويمكنه استخدام آليات معينة مثل الانعكاس للوصول إلى الخصائص.
  • المؤسسة جافا فول:لا ينبغي الخلط بين هذه وبين Java Beans.مع التبسيطات التي جلبها الإصدار 3.0، يمكن اعتبار EJBs مكافئة لـ POJO.EJB في حد ذاته عبارة عن مواصفات تصف كائنات Java الخاصة التي يمكنها التفاعل مع خادم Java EE.يعمل الخادم على هذا النحو كمراقب للمعاملات في سياق بنية المكونات الموزعة التي تتعامل مع أشياء مثل الترابط والثبات والتجميع ودورة حياة الكائن والمراسلة والتسمية.على هذا النحو، يمكن عرض EJB كمجموعة فرعية خاصة جدًا يتم استخدامها في الاتصال بخادم تطبيق Java EE.
  • كائن الأعمال:المفهوم النظري أو الفكرة المجردة التي تساعد على تمثيل مشكلة معينة.وهو يمثل كيانات مجال الأعمال ويوجد في طبقة الأعمال الخاصة بالتطبيق.يمكن تعيينها للكيانات في سياق الثبات.يمكن أن يكون الكائن POJO/JavaBean/EJB ويكون قابلاً للتغيير أو غير قابل للتغيير.
  • كائن القيمة/كائن نقل البيانات:يستخدم نمط تصميم يساعد على فصل طبقات العمل والويب.وهذا يناسب سياق التطبيقات الكبيرة حيث يمكن للكائنات الانتقال بين الطبقات (طبقة الأعمال والويب على سبيل المثال).عادةً ما تكون غير قابلة للتغيير بطبيعتها ويمكن تنسيقها على هيئة POJOs أو Java Beans.إحدى الخصائص هي أنها يمكن أن تحتوي على سمات محسوبة تم إنشاؤها في طبقة الأعمال.

ملاحظة:تم وضع علامة عليها على أنها ويكي مجتمع، لذا لا تتردد في التعديل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top