في الترميز ، ما هي الاختلافات بين الطرق والوظائف

نشرت: 2018-09-21

المصطلحات في الترميز

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

نظرة عامة على طرق OOP

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

اقرأ - أي إطار عمل JavaScript للاختيار

وظائف في الترميز الإجرائي

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

واجهات الترميز والفئات المجردة

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

واجهات في العمق

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

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

اقرأ - الأسباب التي تجعل Laravel هو أفضل إطار PHP في 2018

كيفية استخدام الفصول المجردة

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

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

لذلك ، بالنسبة لهذه الخصائص ، يمكن تهيئة الوظائف أو الطرق التي تحددها في فئة مجردة. ومع ذلك ، فإن بعض الخصائص ، مثل الوركين أو الحاجبين موجودة عند كلا الجنسين. لكن هذه الخصائص تختلف كثيرًا بين الاثنين. لذلك ، لن تقوم الفئة abstract بتهيئة الأساليب أو الوظائف التي تحدد هذه الخصائص. وسوف نترك ذلك للفئات الفرعية.

ملخص

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

من المهم جدًا الإشارة إلى أنك إذا كنت ترغب في أن تصبح مبرمجًا محترفًا. يعتبر التوجّه إلى مفاهيم البرمجة الإجرائية والكائنية (OOP) أمرًا لا بد منه. بالفعل. يستخدم العديد من مهندسي البرمجيات لغة النموذج الموحد لتعيين متطلبات المشروع أو التطبيق للكائنات والرسوم التخطيطية قبل القيام بتشفير OOP. هناك الكثير من الموارد عبر الإنترنت لتعلم هندسة البرمجيات. للمراهقين وطلاب المدارس الثانوية ، تقدم High School Technology Services مجموعة متنوعة من التدريب العملي. للبالغين والمهنيين ، يقدم معهد Coding Bootcamps العديد من فصول البرمجة الأساسية للتقدم مع التركيز على كل من الترميز الإجرائي والتشفير OOP.

نبذة عن الكاتب

مات زاند مبرمج ورجل أعمال ومستشار تكنولوجيا المعلومات وكاتب. وهو مؤسس ومالك مجموعة WEG2G. وهو أيضًا مؤسس DC Web Makers. من هواياته التنزه وركوب الدراجات والأنشطة الخارجية والسفر وتسلق الجبال.