تغليف(علوم حاسوب)

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

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

إذاً نخزن البيانات داخل الصفوف وعندها يمكننا أن نكتفي بمعرفه كيفيه استخدامها من الخارج . إن كيفيه الاستخدام تدعى واجهه الصف (class interface) وهي التي تسمح للأجزاء الأخرى من البرنامج باستخدام الأغراض المعرَّفة من هذا الصف, وبالتالي عندما تستخدم غرض ما فإن معظم شفرته تكون مخفيه, ونادرا ما تعرف ما هي البيانات الداخلية له حتى أنه قد لا توجد طريقة لدخول البيانات الخاصة به بشكل مباشر مالم تستخدم المناهج المتاحة على الواجهة والتي تسمح بتغيير وقراءه البيانات, وذلك يعتبر من أهم الفروق بين البرمجة غرضية التوجه و البرمجة الكلاسيكية والتي تكون البيانات فيها عامه لكل الصفوف أي غير تابعه لصف محدد كما أنك تستطيع تغيرها مباشرة.