مبدأ انعكاس التبعية في جافا
أحد المبادئ الأساسية للقانون الأمريكي هو أن "الجميع متساوون". لا يهمنا نوع النضال أو سفك الدماء الذي تم تحقيقه من خلاله، نحن نفهمه فقط كطريقة جافا، والتي يتم تعريفها على النحو التالي:
المنطق المنطقي النهائي العام الجميع متساوون (الشخص 1، الشخص 2) {
عودة صحيحة؛
}
على الرغم من أن قوانين كل ولاية قد تكون مختلفة، مثل القانون الأساسي للولايات المتحدة، إلا أنه يمكن تسمية نيويورك بقانون نيويورك الأساسي، وينبغي أن يكون بينهما مثل هذه العلاقة: يرث قانون نيويورك الأساسي القانون الأساسي للولايات المتحدة الدول، ولكن لا يسمح بإعادة كتابة هذه الطريقة.
عندما يتعلق الأمر بالتنفيذ في نيويورك، يتم استخدام ما يلي:
القانون الأساسي للولايات المتحدة = قانون نيويورك الأساسي
إن تسمية أسلوب "الجميع متساوون" في أي مكان سيرجع "صحيحًا"، مما يعني أن مبدأ مساواة الجميع لا يمكن تغييره في أي مكان. وهذا قرار كلي يحدد الجزئي، ولن يتغير بين الرجال والنساء بسبب جديد يورك. عدم المساواة بين النساء.
على سبيل المثال، يوجد في دولة معينة أيضًا قانون أساسي وطريقة للمساواة بين الجميع. وينبغي أن يكون التعريف كما يلي:
المنطق العام الجميع متساوون (الشخص 1، الشخص 2) {
عودة صحيحة؛
}
على سبيل المثال، يوجد أيضًا قانون أساسي في مكان معين في بلد معين، كما أن القانون الأساسي لمكان معين موروث أيضًا من القانون الأساسي لبلد معين، لأن طريقة "الجميع متساوون" ليست نهائية. ويمكن إعادة كتابته عند تنفيذه في مكان معين، فقد يكون:
القانون الأساسي لبلد معين = القانون الأساسي الجديد لمكان معين
أو
القانون الأساسي لمكان معين = القانون الأساسي الجديد لمكان معين
ربما عندما ورث القانون الأساسي لمكان معين القانون الأساسي لبلد معين، تمت إعادة كتابة طريقة "الجميع متساوون" وتغييرها إلى:
المنطق العام الجميع متساوون (الشخص 1، الشخص 2) {
إذا (شخص 1==شخص من مكان معين&& شخص 2==شخص من مكان معين){
إذا (الشخص 1 والشخص 2 لهما نفس السمات){
إذا (الشخص 1 والشخص 2 متماثلان باستثناء أنهما ليسا نفس الشخص){
إذا (لم يحدث أي شخص آخر){
عودة صحيحة؛
}آخر{
عودة كاذبة.
}
}آخر{
عودة كاذبة.
}
}آخر{
عودة كاذبة.
}
}آخر{
عودة كاذبة.
}
}
لنتحدث عن مبدأ انعكاس التبعية وفقًا لـ "JAVA and Patterns":
يحتوي المستوى المجرد على منطق الأعمال لنظام التطبيق والقرارات الإستراتيجية على المستوى الكلي التي تعتبر مهمة للنظام بأكمله وهي انعكاس للحتمية؛ بينما يحتوي المستوى الملموس على بعض الخوارزميات والمنطق البسيط المتعلق بالتنفيذ، بالإضافة إلى التكتيكي القرار ينطوي على فرصة كبيرة. سوف تتغير مستويات محددة من التعليمات البرمجية بشكل متكرر، ولا يمكن تجنب الأخطاء. يعتمد مستوى التجريد على مستوى الواقعية. تؤثر تغييرات الخوارزمية باستخدام التفاصيل على المستوى المحدد بشكل مباشر على منطق الأعمال المجهري على مستوى التجريد، مما يتسبب في تحديد المجهري، والتكتيكات لتحديد الإستراتيجية، والصدفة لتحديد الضرورة. هذا أمر مثير للسخرية.
بعد قراءة هذا، ستفهم لماذا يجب عليك استخدامه كثيرًا عند كتابة التعليمات البرمجية في المستقبل:
المنطق المجرد = المنطق الملموس الجديد
استخدم أقل قدر ممكن:
منطق محدد = منطق محدد جديد
هذه هي البرمجة الموجهة للواجهة والتي يتم الترويج لها حاليًا، وإليك مثال عملي آخر للبرمجة الموجهة للواجهة:
يجب عليك عادة استخدام القائمة في كثير من الأحيان. القائمة نفسها هي واجهة موروثة من المجموعة. يمكنك استخدامها على النحو التالي:
قائمة القائمة=ناقل جديد();
القائمة المعلنة بهذه الطريقة هي في الواقع نوع Vector، لأن Vector هو فئتها الفرعية. وفقًا لمبدأ استبدال Liskov، يمكن قبول الفئات الفرعية أينما يمكن قبول الفئة الأصلية. في هذا الوقت، تتم مزامنة القائمة، وبالطبع ستتأثر بأداء معين. إذا قمت بالتغيير إلى بيئة لا تتطلب المزامنة في المستقبل، فستحتاج فقط إلى تغيير الكود أعلاه إلى شيء مثل هذا:
List list=new ArrayList();
لا يلزم تعديل أي كود آخر. النوع الفعلي للقائمة في الوقت الحالي هو ArrayList.
من هذه النقطة، يمكننا أن نرى سبب اعتزاز المصممين بالبرمجة الموجهة للواجهة، لأنه بعد توفير الواجهة، يقوم المنفذون بتنفيذ فئات محددة بناءً على الواجهة، ولا داعي للقلق بشأن قيام المنفذين بتدمير سلامة الأصل البرنامج، ولن يهتم المصممون أبدًا بالطرق الموجودة في الواجهة، ولا تقلق بشأن الطرق المساعدة في الطبقة الملموسة. ولكن هذا يأتي بتكلفة إضافية، مثل إضافة فئات JAVA. إذا كانت الفئات المجردة يمكن أن تحقق كفاءة أقل، فمن الأفضل استخدام أدوات التوصيل الملموسة، مثل فئات الأدوات.