الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

The Interfaces

مغلق
بدأه !!! Boris !!! في 12 أغسطس 2007 · 2 رد · 1,036 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاتة

ان كنت من مبتدئ برمجة OOp فدعنى اقل لك ان VB.NET لغة كائنية التوجة Object Oriented Programming بما تحملة هذه الكلمة من معانى ولكـــــــــــن ...

من حيث الغيرة والعنصرية الموجودة بين طوائف المبرمجين ، يتفوق اصحاب قافلة C ++ بعدة خطوات فى هذا السباق من اهم هذه الخطوات الــ MultPle Inheritance وهى بمعنى الوراثة المتعددة وهى قدرة الفئة من وراثة اكثر من فئة بداخلها ...

ولكن يأتى الحل لمداوة مبرمجى VB.NET للتخلص من عقدة النقص والمتمثلة فى ال MultPle Inheritance بواسطة الكلمة السحرية Interfaces

دعنا نقل كلمة حــــق.

الوراثة المتعددة لها عيوب ولذك يتجنبها مبرمجى اللغات التى تدعمها ولكن فوائدها لاتعد ولاتحصى.

الواجهـــات Interfaces هى اكثر أمانا وسهولة من هذا المبدأ ..

أذن دعنا من الكلام النظرى ولننزل الى ارض الواقع ونحتك بالواجهـــات Interfaces

الواجهات Interfaces هى من اهم التقنيات التى تدعم مبادئ ال oop سواء بطريقة غيرة مباشرة كــال Multiple inheritance او بطريقة مباشرة كــا Polymorphism مبدأ تعدد الواجهات.

الواجهات :

هى عبارة عن بعض الخصائص وال Methods التى تصف فئة معينـــــة ( تصــــف ) ...

Class Boris
Event Go()
Property Job() As String
…
…
End Property
Sub DoIt()
…
…
End Sub
End Class

الفئة السابقة تحتوى على اعضاء تصفها وهو تطبيق لمبدأ Polymorphism وهو احتواء الفئة لاكثر من واجهة تصفهــا ، يزودك مبدأ Polymorphism بكثير من المميزات والتى ابرزها عدم تكرار اكوادك.

Sub PlayIt(ByVal FileObj As WavFile)
…
FileObj.Play
…
End Sub

فى هذا الاجراء التخيلى السابق قمنا بعمل طريقة تقوم بتشغيل ملف

Sub PlayIt(ByVal FileObj As Mp3File)
…
FileObj.Play
…
End Sub

Sub PlayIt(ByVal FileObj As RmFile)
…
FileObj.Play
…
End Sub

وكذلك مع باقى الملفات الصوتية

(( تكـــــــــــــــــــــرار لشفراتك ))..

والتكرار ايضا يشمل عملية استدعاء هذه الاجراءات وكذلك ارسال الوسيطة المطلوبة لكل اجراء مع التحقق منهــا. وتخيل ان اردت اضافة ملف جديد فالتكرار ثم التكرار .

اما مع الوجهـــات Interfaces

واجهة باسم XFile

Sub PlayFile(ByVal FileObj As XFile)
…
FileObj.Play()
…
End Sub

الاجراء السابق بامكانة احتواء اى ملف صوتى يحتوى على الواجة XFile

لنرى كيف يتم بناء الواجهــــــــــات ..

استخدم الكلمة المحجوزة Interface ثم اسم الواجهة

لنعرف الواجهة السابقة فى المثال اعلاه ..

Interface XFile 

Property FileName () as String

Public Sub Play

End Interface

لاتستخدم كلمات اغلاق ال Bolcks Of Codes لان لاحول لها ولا قوة.

ولا يمكنك تعريف متغير تقليدى بداخلهـــا ( لااعلم ما السبب ) .

ناتى الى استخدام الواجهـــة

Class BorisClass

Implements XFile

End Class

يجب الاعلان عن جميع اعضاء الواجهة ويقوم vb.net بفعل هذا بدلا منك

Property FileName () as String

Get
…
End Get
Set(ByVal Value As String)
…
End Set
End Property

Sub PlayFile(ByVal FileObj As XFile)
…

End Sub 


End Class

استخدم ال Class بكل اعضاءها اقصد واجهاتهــا فى اى وقت ولاحظ انك تستطيع استعمال اكثر من واجهة فى نفس ال Class (وراثة متعددة)

داخل VB.NET واجهات كثيرة تقريبا كل Class لها واجهة تخصها ابوية اقصد بكلمة ابوية اى ان ترى مثلا الواجهة IDbConnection مسئولة عن الاتصال بقواعد البيانات ( قواعد البيانات اى كانت ) .

واجهات VB.NET كثيرة وعديدة ونستكشفها ان شاء الله فى مواضيع قادمة

والسلام عليكم ورحمة الله وبركاتة.

#2

جزاك اللهُ ألف خير, ونحن متابعين لهذه الدروس الطيبة, بارك الله فيك, و سددك للصواب .

في المثال يتضح المقال

#3

مشكور اخي بوريس على هذا النوع من الدروس ولكن مش من الممكن اننا اعرف interface عن طريق اضافتة من AddNewItem ومن ثم اختار وشكرا

جهاد العريقي كتب:
مشكور اخي بوريس على هذا النوع من الدروس ولكن مش من الممكن اننا اعرف interface عن طريق اضافتة من AddNewItem ومن ثم اختار وشكرا

هذا الموضوع مغلق.

مواضيع مشابهة