سؤال

لا يمكنني اكتشاف حالة استخدام لأتمكن من إضافة تعليقات توضيحية للواجهات في Java.

ربما شخص ما يمكن أن يعطيني مثالا؟

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

المحلول

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

نصائح أخرى

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

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

حالة الاستخدام التي أعمل معها هي التحقق من صحة javax/hibernate bean، فنحن نستخدم واجهات لمساعدتنا في تجنب تحديد عمليات التحقق من الصحة في كل فئة محددة.

public interface IUser {
    @NotNull Long getUserId();
    ...
}

public class WebUser implements IUser {
    private Long userId;

    @Override
    public Long getUserId(){
        return userId;
    }
    ...
}

مزيد من المثال، ولكن محلي و بعيد التعليقات التوضيحية في EJB3.وفقًا لوثيقة جافا،

عند استخدامها على واجهة ، يعين تلك الواجهة كواجهة عمل محلية.

أعتقد أن حالة الاستخدام هنا هي أن الواجهة تحتوي على وظيفة خاصة يُشار إليها بشكل أفضل من خلال التعليق التوضيحي.

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

نظرًا لأن التعليقات التوضيحية لا تملي عليك ما يمكنك فعله بها، فلا يوجد سبب وجيه لعدم السماح للمستخدمين بالتعليق على الواجهات.

يمكنك استخدامه لبرمجة نمط العقد - اذهب خطوة أبعد من مجرد تعريف الواجهة (الأنواع وأسماء الطرق) وأيضًا تحديد بعض الدلالات (محتويات الأنواع والشروط المسبقة والشروط اللاحقة).

يجب أن أتحقق من كيفية عمل التعليقات التوضيحية في Java، ولكن يمكن إجراء هذه الأشياء بسهولة باستخدام تعليقات Python التوضيحية...

عند نشر التطبيقات ضمن JBoss، يمكنك استخدام التعليقات التوضيحية على الواجهة لتصدير خدمة في وحدة تحكم jmx.

لقد استخدمته عند تحديد واجهة REST.يسمح لك RESTeasy بإنشاء عميل REST يستخدم واجهة مشروحة (RESTInterfaceV1 في هذا المثال):

final RESTInterfaceV1 client = ProxyFactory.create(RESTInterfaceV1.class, "http://localhost:8080/rest");

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

أضع علامة على واجهاتي باستخدام @Immutable لأوضح بوضوح لمطوري الفئات الفرعية ما هي قابلية العقد التي يجب أن تحتوي عليها فئة تنفذ الواجهة.وكما يقول جيهيل، البرمجة عن طريق العقد.

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