سؤال

لقد رأيت بعض الأسئلة المشابهة:

هل يمكنك أيضًا إخباري بالسياقات التي يتم استخدامها فيها؟أو الغرض منهم؟

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

المحلول

JavaBeans

JavaBean هي الفئة التالية اتفاقيات JavaBeans كما حددتها الشمس.تحتوي ويكيبيديا على ملخص جيد جدًا لما JavaBeans نكون:

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

لكي تعمل كفئة JavaBean، يجب أن تلتزم فئة الكائن باصطلاحات معينة حول تسمية الطريقة والبناء والسلوك.تتيح هذه الاصطلاحات إمكانية الحصول على أدوات يمكنها استخدام JavaBeans وإعادة استخدامها واستبدالها وتوصيلها.

الاتفاقيات المطلوبة هي:

  • يجب أن يكون للفئة مُنشئ افتراضي عام.يتيح ذلك إنشاء مثيل سهل ضمن أطر التحرير والتنشيط.
  • يجب أن يكون الوصول إلى خصائص الفئة باستخدام طرق get وset وطرق أخرى (ما يسمى بطرق الوصول وطرق mutator)، باتباع اصطلاح التسمية القياسي.يتيح ذلك إجراء فحص آلي سهل وتحديث حالة الفول ضمن أطر العمل، والتي يتضمن العديد منها محررات مخصصة لأنواع مختلفة من الخصائص.
  • يجب أن يكون الفصل قابلاً للتسلسل.يسمح هذا للتطبيقات وأطر العمل بحفظ حالة الحبة وتخزينها واستعادتها بشكل موثوق بطريقة مستقلة عن الجهاز الظاهري والنظام الأساسي.

نظرًا لأنه يتم التعبير عن هذه المتطلبات إلى حد كبير كاصطلاحات بدلاً من تنفيذ واجهات، فإن بعض المطورين ينظرون إلى JavaBeans على أنها كائنات Java قديمة عادية تتبع اصطلاحات تسمية محددة.

بوجو

كائن Java القديم البسيط أو POJO هو مصطلح تم تقديمه في البداية لتعيين كائن Java بسيط وخفيف الوزن، ولا ينفذ أي شيء javax.ejb الواجهة، على عكس EJB 2.x ذو الوزن الثقيل (خاصة وحدات الكيان، وحدات الجلسة عديمة الحالة ليست IMO سيئة إلى هذا الحد).اليوم، يُستخدم هذا المصطلح للإشارة إلى أي كائن بسيط لا يحتوي على أي أشياء إضافية.مرة أخرى، تقوم ويكيبيديا بعمل جيد في التعريف بوجو:

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

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

يستمر المصطلح في نمط المصطلحات القديمة للتقنيات التي لا تستخدم الميزات الجديدة الفاخرة ، مثل الأواني (خدمة الهاتف القديمة البسيطة) في الهاتف الهاتفي ، والقرون (هياكل البيانات القديمة البسيطة) التي يتم تعريفها في C ++ ولكن تستخدم فقط ميزات لغة C ، و POD (وثائق قديمة عادي) في بيرل.

من المرجح أن يكون المصطلح قد اكتسب قبولًا واسع النطاق بسبب الحاجة إلى مصطلح مشترك وسهل الفهم يتناقض مع أطر الكائنات المعقدة.جافابين هو pojo قابلة للتسلسل ، وله مُنشئ حدوث حميد ، ويسمح بالوصول إلى الخصائص باستخدام أساليب getter و setter.Javabean المؤسسة ليست فئة واحدة ولكن نموذج مكون كامل (مرة أخرى ، EJB 3 يقلل من تعقيد المؤسسة Javabeans).

نظرًا لأن التصميمات التي تستخدم Pojos أصبحت أكثر شيوعًا ، فقد نشأت الأنظمة التي تمنح Pojos بعض الوظائف المستخدمة في الأطر ومزيد من الاختيار حول مجالات الوظائف المطلوبة بالفعل.السبات والربيع أمثلة.

كائن القيمة

كائن القيمة أو VO هو كائن مثل java.lang.Integer التي تحمل القيم (وبالتالي كائنات القيمة).للحصول على تعريف أكثر رسمية، غالبًا ما أشير إلى وصف مارتن فاولر لـ كائن القيمة:

في أنماط هندسة تطبيقات المؤسسات، قمت بوصف كائن القيمة ككائن صغير مثل كائن المال أو النطاق الزمني.الخاصية الرئيسية لهم هي أنهم يتبعون دلالات القيمة بدلاً من الدلالات المرجعية.

يمكنك عادةً إخبارهم بذلك لأن مفهومهم للمساواة لا يعتمد على الهوية، بل يكون كائنان ذوا قيمة متساويين إذا كانت جميع حقولهما متساوية.على الرغم من أن جميع الحقول متساوية، إلا أنك لا تحتاج إلى مقارنة جميع الحقول إذا كانت المجموعة الفرعية فريدة - على سبيل المثال، رموز العملة لكائنات العملة كافية لاختبار المساواة.

الاستدلال العام هو أن كائنات القيمة يجب أن تكون غير قابلة للتغيير تمامًا.إذا كنت تريد تغيير كائن قيمة، فيجب عليك استبدال الكائن بكائن جديد وعدم السماح لك بتحديث قيم كائن القيمة نفسه - تؤدي كائنات القيمة القابلة للتحديث إلى مشاكل مستعارة.

استخدمت أدبيات J2EE المبكرة مصطلح كائن القيمة لوصف فكرة مختلفة، وهو ما أسميه أ كائن نقل البيانات.لقد قاموا منذ ذلك الحين بتغيير استخدامهم واستخدام المصطلح كائن النقل بدلاً من.

يمكنك العثور على المزيد من المواد الجيدة حول الأشياء القيمة على الموقع ويكي وبواسطة ديرك رييل.

كائن نقل البيانات

كائن نقل البيانات أو DTO هو نمط (مضاد) تم تقديمه مع EJB.بدلاً من إجراء العديد من الاستدعاءات عن بعد على وحدات JBs، كانت الفكرة هي تغليف البيانات في كائن قيمة يمكن نقله عبر الشبكة:كائن نقل البيانات.ويكيبيديا لديها تعريف لائق ل كائن نقل البيانات:

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

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

في بنية EJB التقليدية، تخدم DTOs أغراضًا مزدوجة:أولاً، يعملون على حل مشكلة عدم إمكانية إجراء تسلسل لوحدات الكيانات؛ثانيًا، تحدد ضمنيًا مرحلة التجميع حيث يتم جلب جميع البيانات التي سيتم استخدامها بواسطة العرض وتنظيمها في DTOs قبل إعادة التحكم إلى طبقة العرض التقديمي.


لذلك، بالنسبة للعديد من الأشخاص، فإن DTOs وVOs هما نفس الشيء (لكن فاولر يستخدم VOs ليعني شيئًا آخر كما رأينا).في معظم الأحيان، يتبعون اصطلاحات JavaBeans وبالتالي فهم JavaBeans أيضًا.وجميعهم POJOs.

نصائح أخرى

DTO مقابل VO

دتو - كائنات نقل البيانات هي مجرد حاويات بيانات تُستخدم لنقل البيانات بين الطبقات والطبقات.

  • أنه يحتوي بشكل رئيسي على السمات.يمكنك حتى استخدام السمات العامة بدون الحروف والمحددات.
  • لا تحتوي كائنات نقل البيانات على أي منطق عمل.

القياس:
نموذج تسجيل بسيط مع سمات اسم المستخدم وكلمة المرور ومعرف البريد الإلكتروني.

  • عندما يتم تقديم هذا النموذج في ملف التسجيلات ، ستحصل على جميع السمات من طبقة العرض إلى طبقة العمل حيث تقوم بتمرير السمات إلى حبوب جافا ثم إلى داو أو طبقة الثبات.
  • تساعد DTO في نقل السمات من طبقة العرض إلى طبقة الأعمال وأخيرًا إلى طبقة الثبات.

تم استخدام DTO بشكل أساسي لنقل البيانات عبر الشبكة بكفاءة، وقد يكون حتى من JVM إلى JVM آخر.

DTOs غالبا ما تكون java.io.Serializable - من أجل نقل البيانات عبر JVM.

تعليق صوتي - يمثل كائن القيمة [1] [2] نفسه مجموعة ثابتة من البيانات ويشبه تعداد Java.تعتمد هوية كائن القيمة على حالته وليس على هوية كائنه وهي غير قابلة للتغيير.ومن أمثلة العالم الحقيقي Color.RED وColor.BLUE وSEX.FEMALE وما إلى ذلك.

بوجو مقابل جافا بينز

على سبيل المثال

    private String foo;
    public String getFoo(){...}
    public void setFoo(String foo){...}; 

2] يجب على Javabeans تنفيذ قابلة للتسلسل ولديها مُنشئ حميمة ، في حين أن Pojo ليس لديه هذه القيود.

أساسًا،

DTO:يمكن لـ "كائنات نقل البيانات" أن تنتقل بين طبقات منفصلة في هندسة البرمجيات.

التعليق الصوتي:تحتوي "كائنات القيمة" على كائن مثل عدد صحيح ومال وما إلى ذلك.

بوجو:كائن Java قديم عادي وهو ليس كائنًا خاصًا.

حبوب جافا:الازعر Java Class لتكون قابلة للتسلسل، لديك no-arg مُنشئ و getter و setter لكل حقل

Java Beans ليست مثل EJBs.

ال مواصفات جافا بينز في Java 1.0 كانت محاولة Sun للسماح بمعالجة كائنات Java في بيئة تطوير متكاملة (IDE) تبدو مثل VB.كانت هناك قواعد موضوعة للكائنات المؤهلة كـ "Java Beans":

  1. المنشئ الافتراضي
  2. الحروف والمحددات لأعضاء البيانات الخاصة الذين اتبعوا اصطلاح التسمية المناسب
  3. قابل للتسلسل
  4. ربما الآخرين الذين نسيتهم.

جاء EJBs في وقت لاحق.فهي تجمع بين المكونات الموزعة ونموذج المعاملات، الذي يعمل في حاوية تدير الخيوط والتجميع ودورة الحياة وتوفر الخدمات.إنهم بعيدون كل البعد عن Java Beans.

ظهرت DTOs في سياق Java لأن الأشخاص اكتشفوا أن مواصفات EJB 1.0 كانت "ثرثارة" للغاية مع قاعدة البيانات.بدلاً من القيام برحلة ذهابًا وإيابًا لكل عنصر من عناصر البيانات، يقوم الأشخاص بتجميعها في Java Beans بكميات كبيرة وشحنها.

كانت POJOs بمثابة رد فعل ضد EJBs.

بوجو :إنه ملف جافا (فئة) لا يقوم بتوسيع أو تنفيذ أي ملف جافا آخر (فئة).

فاصوليا:إنه ملف جافا (فئة) تكون فيه جميع المتغيرات خاصة، والطرق عامة، ويتم استخدام الحروف والمحددات المناسبة للوصول إلى المتغيرات.

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

الحديث الأول عن

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

وبعد ذلك الحديث عن آخر POJO

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

  • كائن القيمة :يُستخدم عند الحاجة لقياس مساواة الكائنات بناءً على قيمة الكائنات.
  • كائن نقل البيانات :قم بتمرير البيانات بسمات متعددة في طلقة واحدة من العميل إلى الخادم عبر الطبقة، لتجنب استدعاءات متعددة للخادم البعيد.
  • كائن جافا القديم العادي :إنها مثل فئة بسيطة من الخصائص، مُنشئ عام بدون وسيطات.كما نعلن لكيان JPA.

الفرق بين نمط كائن القيمة ونمط نقل البيانات

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