سؤال

بالنظر إلى هذا السيناريو حيث لديك "نقل كائنات" (POJO's مع Just Getters / Setters) التي يتم تمريرها بواسطة مكتبة عميل إلى API الخاصة بك، ما هي أفضل طريقة لتسمية كائنات النقل؟

package com.x.core; 

public class Car {
        private String make;
        private String model;

        public Car(com.x.clientapi.Car car) {
             this.make = car.getMake();
             this.model = car.getModel();
        }
}

في هذا المثال صفك رئيسي وكائن النقل الخاص بك على حد سواء Car. وبعد إنهم في حزم مختلفة، لكنني أعتقد أنه مربك أن يكون لها نفس الاسم. هل هناك أفضل الممارسات حول كيفية تسمية كائنات النقل؟

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

المحلول

أضف "DTO" عموما إلى نهاية اسم الفصل بالإضافة إلى وضع جميع DTO في حزمة خاصة بهم. في مثالك، أود أن أسميها com.x.core.dto.cardto.

نصائح أخرى

دata. بransfer. فيجدد يجب أن تتبع الطبقات اتفاقية الاسم محددة في مواصفات لغة Java.:

يجب أن تكون أسماء أنواع الفئة الأسماء الوصفية أو عبارات الاسم، وليس طويلا، في حالة مختلطة مع الحرف الأول من كل كلمة ذات صلة.

ClassLoader
SecurityManager
Thread
Dictionary
BufferedInputStream

[...]


لاحقة اسم الفصل مع في أو في ليست ذات معنى حقا ولا تخبر الكثير عن الفصل نفسه. النظر في استخدام الأسماء التي تصف هدف من الفصول الدراسية الخاصة بك.

فيما يلي قائمة غير شاملة من اقتراحات الأسماء التي يمكنك استخدامها:

  • نوعا منأمر
  • نوعا منإعدادات
  • نوعا منأوراق اعتماد
  • نوعا منتفاصيل
  • نوعا منجزء
  • نوعا منهدف
  • نوعا منرأس
  • نوعا منإدخال
  • نوعا منتعليمات
  • نوعا منغرض
  • نوعا منرسالة
  • نوعا منالبيانات الوصفية
  • نوعا منعملية
  • نوعا منانتاج |
  • نوعا منالحمولة
  • نوعا منتنبؤ
  • نوعا منqueryparameter.
  • نوعا منqueryresult.
  • نوعا منالتمثيل
  • نوعا منطلب
  • نوعا منموارد
  • نوعا منإجابة
  • نوعا مننتيجة
  • نوعا منصف
  • نوعا منإعدادات
  • نوعا منتخصيص
  • نوعا منحالة
  • نوعا منملخص

الملاحظة 1: ما إذا كان ينبغي معالجة المختصرات أو كل الكلمات الكبيرة ككلمات أم لا، أعتقد أنها متروك لك. افحص ال جاوة أبى وسوف تجد بعض المروعة مثل ZipInputStream / GZIPInputStream. وبعد كلا الفئتين في نفس الحزمة واتفاقية الاسم ليست متسقة. HttpURLConnection لا تظهر أي اتساق مع المختصرات أيضا.

ملاحظة 2: تم استعارة بعض الأسماء المذكورة أعلاه من هذا شرط كتب بواسطة ريتشارد دينغوال (يبدو أن المقالة الأصلية لم تعد متوفرة، لذلك إليك نسخة مخزنة مؤقتا من أرشيف الويب).

إضافة DTO أو DAO أو أي شيء آخر ينتهك الجافة. FQN بخير تماما، خاصة إذا كان حقا نفس الشيء.

لا أعتقد أن هناك أفضل الممارسات أو الاتفاقية لفصل أظهر هذا النوع من السلوك. أنا شخصيا لا أحب كائن كلمة في أي من أسماء الفئة. يمكنك إما استخدام بعض التأهيل مثل Poko.car أو استخدم بعض اتفاقية التسمية مثل Car Car (for Pojo) Carbiz (For Business Business Domain)

أو إذا كنت لا تمانع في أن تذهب كائن الكلمة في اسم الفصل لشيء مثل Cardto (كائن نقل بيانات السيارة)

استخدم اتفاقية مناسبة من بين اتفاقيات التعليمات البرمجية الأخرى التي تستخدمها. أنا شخصيا استخدم لاحقة "إلى" (مثل كائن نقل البيانات المرتبط بفئة مجال العملاء يسمى customerto). أيضا يجب أن تنقل بنية الحزمة نية كل نوع من أنواع الصف (SO.FOO.Domain.customer و So.Foo.Customerto)

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