Latest web development tutorials

C ++ تجريد البيانات

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

تجريد البيانات هو الاعتماد على واجهة برمجة و(تصميم) تكنولوجيا فصل التنفيذ.

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

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

الآن، دعونا ننكب على العمل، فمن من حيث البرمجة C ++، C ++بيانات الطبقة التجريدممكن. منها على العالم الخارجي يوفر طريقة شائعة لتشغيل عدد كبير من الكائنات البيانات، وهذا هو، في الواقع، والعالم الخارجي لا يعرف تطبيق فئة الداخلي.

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

في C ++، ونحن نستخدمالدرجة الخاصة بنا لتحديد نوع البيانات مجردة (ADT).يمكنك استخدامostream الطبقة coutالكائن إلى بيانات الإخراج إلى الإخراج القياسي، على النحو التالي:

#include <iostream>
using namespace std;

int main( )
{
   cout << "Hello C++" <<endl;
   return 0;
}

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

التبويب الوصول إلزامية المستخلص

في C ++، ونحن نستخدم علامة التبويب الوصول إلى تعريف فئة واجهة مجردة. وهناك فئة يمكن أن تحتوي على صفر أو أكثر وصول العلامات:

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

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

فوائد التجريد البيانات

تجريد البيانات واثنين من المزايا الهامة:

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

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

البيانات مثيل مجردة

C ++ البرنامج، أي فئة مع أعضاء التجريد البيانات العام والخاص يمكن أن تستخدم على سبيل المثال. النظر في الأمثلة التالية:

#include <iostream>
using namespace std;

class Adder{
   public:
      // 构造函数
      Adder(int i = 0)
      {
        total = i;
      }
      // 对外的接口
      void addNum(int number)
      {
          total += number;
      }
      // 对外的接口
      int getTotal()
      {
          return total;
      };
   private:
      // 对外隐藏的数据
      int total;
};
int main( )
{
   Adder a;
   
   a.addNum(10);
   a.addNum(20);
   a.addNum(30);

   cout << "Total " << a.getTotal() <<endl;
   return 0;
}

عندما يتم ترجمة التعليمات البرمجية أعلاه وتنفيذها، وتنتج النتائج التالية:

Total 60

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

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

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

في هذه الحالة، بغض النظر عن أي برنامج باستخدام واجهة، فإن واجهة لن تتأثر، إلا أن ندرك أحدث إعادة تجميع.