الثلاثاء، 20 أكتوبر 2020

SAP ABAP - Encapsulation التغليف او الكبسلة في ساب

 SAP ABAP - Encapsulation التغليف او الكبسلة في ساب

SAP ABAP - Encapsulation التغليف او الكبسلة في ساب

SAP ABAP - Encapsulation التغليف او الكبسلة في ساب

التغليف هو مفهوم البرمجة الشيئية (OOP) الذي يربط البيانات والوظائف التي تعالج البيانات ، وتحافظ على كلاهما في مأمن من التدخل الخارجي وسوء الاستخدام. أدى تغليف البيانات إلى مفهوم OOP المهم لإخفاء البيانات. التغليف هو آلية لتجميع البيانات والوظائف التي تستخدمها ، واستخراج البيانات هو آلية لتعريض الواجهات فقط وإخفاء تفاصيل التنفيذ عن المستخدم.

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

التغليف بواسطة الواجهة

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

دعنا نفكر في التغليف حسب الواجهة. يتم استخدام الواجهة عندما نحتاج إلى إنشاء طريقة واحدة بوظائف مختلفة في فئات مختلفة. هنا لا يلزم تغيير اسم الطريقة. يجب تنفيذ نفس الطريقة في تطبيقات فئة مختلفة.

مثال

يحتوي البرنامج التالي على Interface_1. لقد أعلنا عن السمة والطريقة method1. لقد حددنا أيضًا فئتين مثل Class1 و Class2. لذلك يتعين علينا تنفيذ الطريقة "method1" في كل من تطبيقات الفئة. لقد طبقنا الطريقة "method1" بشكل مختلف في فئات مختلفة. في بداية الاختيار ، نقوم بإنشاء كائنين Object1 و Object2 لفئتين. بعد ذلك ، نسمي الطريقة بواسطة كائنات مختلفة للحصول على الوظيفة المعلنة في فئات منفصلة.

Report ZEncap1. 
Interface inter_1.
   Data text1 Type char35.
   Methods method1.
EndInterface.

CLASS Class1 Definition.
   PUBLIC Section.
      Interfaces inter_1.
ENDCLASS. 

CLASS Class2 Definition.
   PUBLIC Section.
      Interfaces inter_1. 
ENDCLASS.

CLASS Class1 Implementation.
   Method inter_1~method1.
      inter_1~text1 = 'Class 1 Interface method'.
      Write / inter_1~text1.
   EndMethod. 
ENDCLASS.
 
CLASS Class2 Implementation.
   Method inter_1~method1.
      inter_1~text1 = 'Class 2 Interface method'.
      Write / inter_1~text1.
   EndMethod. 
ENDCLASS.
 
Start-Of-Selection.
   Data: Object1 Type Ref To Class1,
      Object2 Type Ref To Class2.
		
   Create Object: Object1, Object2.
   CALL Method: Object1inter_1~method1,
                Object2inter_1~method1. 

ينتج الكود أعلاه الناتج التالي -

Class 1 Interface method 
Class 2 Interface method

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

استراتيجية التصميم

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




التسميات: