x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
يعنى ايه Interface فى ال OOP ؟!!
وليه يعتبر شئ مهم فى تحقيق مفهموم ال Abstraction ؟!!
اهلا بيك عزيزى المبرمج النهاردة هنتكلم عن ال Interface , وايه فوائد استخدامه , وليه تم اختراعه اصلا
خلينا كالعادة نضرب مثال نفهم منه ليه بنستخدم ال Interface ويعنى ايه Interface
تخيل كدا انك صاحب مصنع عربيات وانتا المسؤول عن انك تدى الاوامر للمهندسين اللى معاك عن الحاجات الاساسية اللى لازم تكون موجودة فى كل عربية هتطلع من المصنع بس المهندس هو اللى بيحدد الكيفية اللى هيحقق بيها الطلب اللى انتا عايزه
- يعنى مثلا انتا محدد ان كل عربية يكون فيها حاجة تنور قدامها
- المهندس بيحدد ان هو هيركب فوانيس فى العربية ( بس باختلاف نوع الفانوس وشكله حسب نوع العربية )
- انتا مثلا محدد ان العربية يكون طولها ميزيدش عن 2 متر
- انتا مثلا محدد ان العربية يكون طولها ميزيدش عن 1 متر
- يعنى مثلا انتا محدد ان كل عربية لازم يكون فيها فتحة سقف
- المهندس بيحدد فتحة السقف دى هيكون شكلها ايه حسب نوع العربية
كل العربيات اللى هتطلع من المصنع هيكون فيها الحاجات اللى انتا عايزها بس كل عربية هيكون فيها الحاجات دى بشكل مختلف عن العربيات التانيه
خلينا بقا نرجع لل OOP ونفهم يعنى ايه Interface
- ال Interface فى المثال اللى فات هو انتا ( صاحب المصنع اللى بيدى المواصفات اللى لازم تكون موجودة فى كل عربية )
- المهندس اللى بيحدد شكل المواصفات اللى انتا طالبها هو ده ( ال Class اللى بيستخدم ال Interface بتاعك )
ال Interface هو ميزة موجودة فى الجافا وبتحقق مبدأ ال Abstraction
- طب ايه هو مبدأ ال Abstraction ؟؟
-- معناه التجريد و هو انى عايز اظهر للمستخدم المعلومات الاساسية عن حاجه معينة بس هعمل اخفاء لبعض التفاصيل المعينة
-- طبعا ده تعريف بسيط لل Abstraction
وده بالظبط اللى بيحصل فى ال Interface انى بظهر للى هيستخدم ال Interface بتاعى ان هو هيستخدم ال Method اللى موجودة جوا ال Interface بس مش بظهر ليه الكيفية اللى هيستخدم بيها ال Method دى
ال Interface بقا بيحتوى على نوعين أساسين من البيانات :
أ- Methods : ودى ال default بتاعها انها بتكون public , abstract ومش بيكون ليها body
ب - attributes : ودى ال default بتاعها انها بتكون public , static , final ولازم نديلها قيمة علشان هيا final
ال Interface مبيكونش ليه constructor وكمان مينفعش اعمل منه object
الجافا حلت مشكلة ال multiple inheritance عن طريق ال Interface بمعنى ان ال class الواحد ممكن يعمل implementation لاكتر من Interface مع بعض
ال Interface بيبقا كأنه عقد مع اللى يستخدمه
- بمعنى ان اللى هيستخدمه فهو لازم يستخدم ال Methods اللى موجودة جوا ال Interface ولازم يعملها override ويعملها implementation على حسب هو هيستخدمها ازاى
ال Interface بيكون عامل زى مخطط لكل ال Classes اللى هتستخدمه
- بمعنى ان ال class لازم يكون من خواصه الحاجات اللى موجودة جوا ال Interface ده
وليه يعتبر شئ مهم فى تحقيق مفهموم ال Abstraction ؟!!
اهلا بيك عزيزى المبرمج النهاردة هنتكلم عن ال Interface , وايه فوائد استخدامه , وليه تم اختراعه اصلا
خلينا كالعادة نضرب مثال نفهم منه ليه بنستخدم ال Interface ويعنى ايه Interface
تخيل كدا انك صاحب مصنع عربيات وانتا المسؤول عن انك تدى الاوامر للمهندسين اللى معاك عن الحاجات الاساسية اللى لازم تكون موجودة فى كل عربية هتطلع من المصنع بس المهندس هو اللى بيحدد الكيفية اللى هيحقق بيها الطلب اللى انتا عايزه
- يعنى مثلا انتا محدد ان كل عربية يكون فيها حاجة تنور قدامها
- المهندس بيحدد ان هو هيركب فوانيس فى العربية ( بس باختلاف نوع الفانوس وشكله حسب نوع العربية )
- انتا مثلا محدد ان العربية يكون طولها ميزيدش عن 2 متر
- انتا مثلا محدد ان العربية يكون طولها ميزيدش عن 1 متر
- يعنى مثلا انتا محدد ان كل عربية لازم يكون فيها فتحة سقف
- المهندس بيحدد فتحة السقف دى هيكون شكلها ايه حسب نوع العربية
كل العربيات اللى هتطلع من المصنع هيكون فيها الحاجات اللى انتا عايزها بس كل عربية هيكون فيها الحاجات دى بشكل مختلف عن العربيات التانيه
خلينا بقا نرجع لل OOP ونفهم يعنى ايه Interface
- ال Interface فى المثال اللى فات هو انتا ( صاحب المصنع اللى بيدى المواصفات اللى لازم تكون موجودة فى كل عربية )
- المهندس اللى بيحدد شكل المواصفات اللى انتا طالبها هو ده ( ال Class اللى بيستخدم ال Interface بتاعك )
ال Interface هو ميزة موجودة فى الجافا وبتحقق مبدأ ال Abstraction
- طب ايه هو مبدأ ال Abstraction ؟؟
-- معناه التجريد و هو انى عايز اظهر للمستخدم المعلومات الاساسية عن حاجه معينة بس هعمل اخفاء لبعض التفاصيل المعينة
-- طبعا ده تعريف بسيط لل Abstraction
وده بالظبط اللى بيحصل فى ال Interface انى بظهر للى هيستخدم ال Interface بتاعى ان هو هيستخدم ال Method اللى موجودة جوا ال Interface بس مش بظهر ليه الكيفية اللى هيستخدم بيها ال Method دى
ال Interface بقا بيحتوى على نوعين أساسين من البيانات :
أ- Methods : ودى ال default بتاعها انها بتكون public , abstract ومش بيكون ليها body
ب - attributes : ودى ال default بتاعها انها بتكون public , static , final ولازم نديلها قيمة علشان هيا final
ال Interface مبيكونش ليه constructor وكمان مينفعش اعمل منه object
الجافا حلت مشكلة ال multiple inheritance عن طريق ال Interface بمعنى ان ال class الواحد ممكن يعمل implementation لاكتر من Interface مع بعض
ال Interface بيبقا كأنه عقد مع اللى يستخدمه
- بمعنى ان اللى هيستخدمه فهو لازم يستخدم ال Methods اللى موجودة جوا ال Interface ولازم يعملها override ويعملها implementation على حسب هو هيستخدمها ازاى
ال Interface بيكون عامل زى مخطط لكل ال Classes اللى هتستخدمه
- بمعنى ان ال class لازم يكون من خواصه الحاجات اللى موجودة جوا ال Interface ده