Declarative programming

اهلا بكم جميعا في تلك المقالة والتي تتعلق ب object-oriented

ما نتحدث عنه اليوم هو ما تحدثنا عنه سابقا مع بعض الإضافات الصغيرة والتي سوف تسهل علينا استخدام ال objects عن طريق declarative programming.

ماذا يعني declarative programming؟ ولماذا؟

  • عبارة عن وصف او تنظيم اللغة أو البرنامج-وصف بما نريد تنفيذه وليس كيف،
  • لسهولة الكتابة والقراءة وتقليل الأخطاء.
  • حتى تصبح اللغة أكثر حيوية وسهولة حيث يمكن لنا أن نعدل على ال objects بسهولة .

كيف نستخدم ال declarative programming؟

  • عن طريق nested structures – تنظيم اللغة على هيئة ببناء متداخل.
  • نستخدم الاقواس {} عند ادخال ال methods أو ال attributes.
  • نستخدم الدالة BraceEnd
  • نستخدم ال reference عند ارجاع objects
  • نستخدم دوال ال set&get

وسوف نتحدث عن كل طريقة وكيفية استخدامها وتأثيرها علي الكود.



Creating Objects inside Lists      

1.jpg

تعرفنا سابقا علي كيفية ادخال attributes، methodsالي ال objects،واليوم نتعرف عن كيفية ادخال attributes، methodالي objects داخل lists.

  • create object

نضع ال Object داخل list مباشرة اثناء تعريف القائمة

[--- ,List_name = [object
  • add objects

عن طريق الدالة add  أو علامة الإضافة +

(Add (List_name, object
List_name + object
  •  [add attributes to objects[in list

نكتب اسم ال list ومكان ال index] object] ، ثم نقوم بادخال  ال attributes عن طريق الاقواس {}

{List_name [index]   {attributes

مثال توضيحي:

في هذا المثال عرفنا كل object  داخل ال list في الأعلى.

2.jpg

الكودCode

Composition

يعني في الترجمة “تركيب” –  مجموعة من Objects بداخل بعضها البعض ك attributes.

  •  Composition & Reference

Reference: عبارة عن مؤشر يشير الي عنوان ال object أو ال list- وليس الي القيمة.

ملحوظة:

  • المتغير  يحتوى على القيمة Value. 
  • و يكون لدينا Reference فقط عندما نرسل Object او List كـ Parameters الى دالة،او عندما تاتى دالة او ميثود وترجع ال Object اثناء وجوده ك Item داخل List –عدا ذلك يكون لدينا Value

  • النسخ من خلال ال Assignment يقوم بعمل نسخة كاملة من ال Object.
  • ال List الى تحتوى على Objects تحتوى على ال Value لكل واحد منهم وليس Reference  وبالتالى اذا حذف ال Object من ال List يحذف تماما.


!?Why reference is important

  • لمشاركة البيانات في أجزاء مختلفة.
  • لعمل نسخ”copy” للبيانات على أي object ثم اجراء التعديل عليه.
  • لتنظيم الكود وسهولة قراءته بعدم الوصول المباشر الي البيانات-حيث يمكنك رؤية ما سوف يتم تنفيذه وليس كيف ينفذ.

شكل توضيحي لكيفية استخدامه:

3.jpg

الفرق بين    Pass-by-value، Pass-by-reference

عند وجود object وlist داخل دالة”calling-function/caller” – فعتد عمل ال return  تقوم بإرجاع الاتي:

  •  reference في حالة list، object
  • قيمة في حالة list

مثال1: يوضح  انشاء objects عن طريق ال copy وال reference

5.jpg الكود: Code

مثال 2: يوضح  ارجاع قيمة – “index” .

6.jpg

الكودCode

مثال 3: يوضح  ارجاع ال object ” – reference”.

5.jpg

الكود: Code

صورة توضيحية للتمييز بين استخدام كل من reference&value:

4.jpg

BraceEnd () and self

BraceEnd :عبارة عن  Method فى Class ، يتم تنفيذها بعد ادخال ال objects.

ملحوظة1: يتم وضع ال BraceEnd في class وليس Function عامة حتي يكون لكل class-

BraceEnd خاصة يستخدمها.

ملحوظة2:عند كتابة self بداخل داله او method فعندئذ تعني الإشارة الي ال objects التابعة لنفس الدالة.

مثال توضيحي:

3.jpg

الكود:Code

Declarative Programming on the top of Object-Oriented

  • Nested structures:

عبارة عن بناء متداخل لتنظيم الكود وسهولة قراءته.

مثال توضيحي:

6.jpg

الكود:Code

  • Getter method

تعرفنا سابقا على انها تستخدم للحصول على قيم ال attributes في ال objects في أي لحظة.

ونستخدمها اليوم في تنظيم وسهولة الكود عن طريق حذف الاقواس التابعة ل methods.

  • نحذف الاقواس ل methods التي لا تحتوي على attributes.
  • وال methods التي تحتوي على attributes نقوم بتعرفيها ك attribute ونعمل دالة لها وهي getter خاصه بال Method الذي تقوم بحذف أقواسه.

مثال توضيحي:

8.jpg

الكود:Code

والان قد وصلنا الي نهاية المدونة والي لقاء اخر……

موقع اللغة:

http://ring-lang.net
Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s