English  

كتب interfaces and features

اذا لم تجد ما تبحث عنه يمكنك استخدام كلمات أكثر دقة.

عرض المزيد

الواجهات والسمات (معلومة)


تقدم Java 8 ميزة جديدة في شكل طرق افتراضية للواجهاتdefault methods for interfaces. بشكل أساسي، يسمح بتعريف طريقة method في واجهةinterface مع تطبيق في السيناريو عند إضافة طريقةطريقةmethod جديدة إلى واجهةinterface بعد الانتهاء من إعداد برمجة صنف الواجهة interface class. إن إضافة وظيفة جديدة إلى الواجهة تعني تنفيذ الطريقة method في كل صنف class تستخدم الواجهةinterface . تساعد الطرق الافتراضية Default methods في هذه الحالة حيث يمكن تقديمها إلى واجهة interface في أي وقت ولها بنية منفذة يتم استخدامها بعد ذلك من قبل الاصناف المرتبطةassociated classes. ومن ثم تضيف الطرق الافتراضية default methodsإمكانية لتطبيق المفهوم بطريقة من النوع المختلطmixin .

يمكن للواجهاتInterfaces المدمجة مع البرمجة الموجهة إلى الجوانب أن تنتج أيضًا مزيجًا متكاملًا باللغات التي تدعم هذه الميزات، مثل C # أو Java. بالإضافة إلى ذلك، من خلال استخدام نمط واجهة العلامة والبرمجة العامة marker interface pattern, generic programming,وطرق التمديدextension methods ، فإن C # 3.0 لديه القدرة على محاكاة الخلطات. مع الإصدار 3.0 من C # ، تم تقديم طرق التمديدExtension Methods [2] ويمكن تطبيقها، ليس فقط على الاصناف classes ولكن أيضًا على الواجهاتclasses. توفر طرق التمديدExtension Methods وظائف إضافية في فصل دراسي موجود بدون تعديل الصنف. ثم يصبح من الممكن إنشاء فئة مساعد ثابتة static helper classلوظائف محددة تحدد طرق التمديدextension methods. نظرًا لأن الاصناف تطبق الواجهة (حتى إذا لم تحتوي الواجهة الفعلية على أي طرق أو خصائص لتطبيقها) ، فستلتقط جميع طرق الامتداد أيضًا.

لا يحتاج ECMAScript (في معظم الحالات التي يتم تنفيذها كجافا سكريبت) إلى محاكاة تكوين الكائن عن طريق نسخ الحقول تدريجيًا من كائن إلى آخر. وهو يدعم في الأساس خاصية Trait و mixin تعتمد على تكوين العناصر عبر الكائنات الوظيفية التي تنفذ سلوكًا إضافيًا ثم يتم تفويضها عبر call أو apply على الكائنات التي تحتاج إلى مثل هذه الوظائف الجديدة.

في سكالا

سكالا لديها نظام غني من النوع والسماتtype system and Traits جزء منه مما يساعد على تنفيذ سلوك الخلطmixin . كما يظهر اسمها، يتم استخدام Traits السمات عادة لتمثيل ميزة أو سمة مميزة عادة ما تكون متعامدة مع مسؤولية نوع ملموس أو على الأقل في حالة معينة. على سبيل المثال، تم تصميم القدرة على الغناء على أنها سمة متعامدة: يمكن تطبيقها على الطيور والأشخاص وما إلى ذلك.

trait Singer{ def sing { println(" singing … ") } //more methods } class Bird extends Singer

هنا، اختلط Bird في جميع طرقmethods السمةtrait في تعريفه الخاص كما لو كانت صنف Bird قد حددت طريقة الغناء () بمفردها. كما extends يستخدم أيضا ليرث من صنفsuper class ، إذا لم يرق اي صنف superclass في حالة استخدام trait سمة extends وفقط لmixin في سمة traitالأولى. يتم خلط جميع السمات التالية في استخدام الكلمة الأساسية with .

class Person class Actor extends Person with Singer class Actor extends Singer with Performer

Scala يسمح بالاختلاط في سمة trait (إنشاء نوع مجهول) عند إنشاء كائن جديد لصنف instance of a class. في حالة كائن من صنف الشخص، لا يمكن لجميع الكائنات الغناءsing. هذه الميزة تأتي ثم استخدام:

class Person{ def tell { println (" Human ") } //more methods } val singingPerson = new Person with Singer singingPerson.sing

في سويفت Swift

يمكن تحقيق Mixin في Swift باستخدام ميزة لغة تسمى التنفيذ الافتراضي في ملحق البروتوكولProtocol Extension.

1 protocol ErrorDisplayable { 2 func error(message:String) 3 } 4 5 extension ErrorDisplayable { 6 func error(message:String) { 7 // Do what it needs to show an error 8 //... 9 print(message) 10 } 11 } 12 13 struct NetworkManager : ErrorDisplayable { 14 func onError() { 15 error("Please check your internet Connection.") 16 } 17 }

المصدر: wikipedia.org