تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
تحويل Interface الي دوال API
#1
فكرة الموضوع تتلخص في تحويل الواجهات Interface الي دوال
حيث يتم اخفاء الكود الحقيقي الذي يقوم بالتنفيذ
وهنا يتم استخدام Interface كبديلا للكلاس الحقيقي الموجود به الكود

كتابة الكود الخاص لأي Interface
PHP كود :
Public Interface IStringAccessor
    Function Access
() As String
End 
Interface 

ثم نقوم بعمل Implement للواجهة Intereface في اي كلاس

PHP كود :
Friend Class StringAccessor
    Implements IStringAccessor

    Private value 
As String
    Private accessorFunc 
As Func(Of StringString)

 
   Public Sub New(value As Stringfunc As Func(Of StringString))
 
       Me.value value
        Me
.accessorFunc func
    End Sub

    Public 
Function Access() As String Implements IStringAccessor.Access
        Return Me
.accessorFunc(Me.value)
 
   End Function

End Class 


كتابة الكلاس الذي يحتوي علي دوال API
حيث الهدف هنا استدعاء الواجهة Interface عن طريق تمرير الكلاس الأصلي و الموجود به الكود الفعلي


PHP كود :
Public NotInheritable Class AccessorAPI

    Public Shared 
Function Access(value As String) As IStringAccessor
        Return 
New StringAccessor(value, Function(ss)
 
   End Function

End Class 

الإستخدام
فقط تستدعي الواجهة Interface


PHP كود :
     Dim accessor As IStringAccessor AccessorAPI.Access("Visual Basic")
 
       If accessor IsNot Nothing Then
            Me
.Text accessor.Access
        End 
If 

من الممكن دمج الكود الخاص بدوال API و الكلاس StringAccessor ليصبح بالشكل التالي

PHP كود :
Public NotInheritable Class AccessorAPI

    Public Shared 
Function Access(value As String) As IStringAccessor
        Return 
New StringAccessor(value, Function(ss)
 
   End Function

 
   Private Class StringAccessor
        Implements IStringAccessor

        Private value 
As String
        Private accessorFunc 
As Func(Of StringString)

 
       Public Sub New(value As Stringfunc As Func(Of StringString))
 
           Me.value value
            Me
.accessorFunc func
        End Sub

        Public 
Function Access() As String Implements IStringAccessor.Access
            Return Me
.accessorFunc(Me.value)
 
       End Function

 
   End Class

End Class 

الكلاس أعلاه يمكن تعميمه عن طريق استخدام Generic
حيث يمكن كتابة الواجهة Interface بالشكل التالي

PHP كود :
Public Interface IAccessor(Of T)
 
   Function Access() As T
End 
Interface 

PHP كود :
Public NotInheritable Class Accessor(Of T)

 
   Public Shared Function Access(value As T) As IAccessor(Of T)
 
       Return New InternalAccessor(value, Function(xx)
 
   End Function

 
   Private Class InternalAccessor
        Implements IAccessor
(Of T)

 
       Private _value As T
        Private _accessor 
As Func(Of TT)

 
       Public Sub New(value As Tfunc As Func(Of TT))
 
           Me._value value
            Me
._accessor func
        End Sub

        Public 
Function Access() As Implements IAccessor(Of T).Access
            Return Me
._accessor(Me._value)
 
       End Function
 
   End Class

End Class 

الإستخدام

PHP كود :
       Dim accessor As IAccessor(Of String) = AccessorAPI.Access("any String")
 
       If accessor IsNot Nothing Then
            Me
.Text accessor.Access
        End 
If 

أتمني أن تكون الفكرة مفيدة للبعض منكم
تقبلوا تحياتي
Retired
الرد
تم الشكر بواسطة: ابو ليلى , galas , galas , yassoo1985
#2
السلام عليكم
ممكن شرح أوفر لموضوع الـ API
ازاي اخلي البرنامج بتاعي ( ERP ) يدعم الـ API بحيث يمكن لطرف ثالث ( جهة حكومية مثلا ) الوصول لبعض البيانات المطلوبة عن طريق برامج وسيطة
علما بأنه تم تصميم البرنامج بلغة vb وقواعد بيانات Access
وشكرا
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  تحويل النص إلى كلام بالعربي دون الاتصال بالأنترنت ابو ليلى 15 6,782 20-09-20, 05:27 AM
آخر رد: kingofchess
Star [مقال] كيفية تحويل اسعار العملات بإستخدام Yahoo Exchange Rates Web Service Programmation 9 7,230 22-02-20, 12:58 PM
آخر رد: دمعة المقهور
  [مقال] دوال التعامل مع النصوص Strings - VB.NET ابو ليلى 10 18,176 15-04-19, 07:09 PM
آخر رد: alsouf
  شرح انشاء برنامج تحويل صيغ الملفات الصوتيه CLARO 10 5,221 16-11-18, 04:41 PM
آخر رد: anassss
  إستخدام الواجهات Interface في إستدعاء الدوال و الروتينات من ملف Dll silverlight 4 2,695 22-06-18, 08:12 PM
آخر رد: sendbad100
  [VB.NET] ( يبدو انني مزعج ) ممن عندهم خبره في vb.net هل يمكنك تحويل النص التالي إلى كود برمجي thevirus 2 2,529 21-11-16, 06:35 AM
آخر رد: أبو عمر
  [VB.NET] عمل برنامج تحويل الفيديو video convert alking-0999 0 2,142 09-07-15, 12:50 PM
آخر رد: alking-0999
  تحويل الفيديو في برامجك-الجزء الثاني( إصلاح للمشاكل + تعديل للروابط + توضيح للأمر ) RaggiTech 1 2,414 10-12-14, 06:37 PM
آخر رد: abulayth
  دوال معالجة الملفات RaggiTech 8 3,332 03-10-12, 02:46 PM
آخر رد: RaggiTech
  دوال التعامل مع النصوص RaggiTech 10 34,099 03-10-12, 02:41 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم