الفصيلة أو الصنف[1] أو الفئة («القالب» بالترجمة الغير حرفية) (بالإنجليزية: Class)[2] ويعني في البرمجة الكائنية التوجه «Object Orianted Programming» قالبًا بشفرة برمجية «program-code-template» ويمثل المخطط الأولي لإنشاء الكائنات «Objects»، حيث يحدد هذا المخطط مجموعة الخصائص (Attributes) والوظائف (Methods) التي سوف تتشاركها جميع الكائنات التي ستُنشَأ من هذا الصنف، ويقوم بتوفير القيم الأولية للمتغيرات الأعضاء داخل هذا الصنف «Member variable» والسلوك الُمطَبَّق (الوظائف أو الطرق للأعضاء) «member functions or methods» من ناتج هذا الصنف (قالب الفصيلة) .[3][4]
يمثل الصنف (قالب الفصيلة) اسما في الحياة الملموسة أو التخيلية مثل «السيارة» أو «التيار الكهربائي». يختزل الصنف جميع العمليات الأساسية والمعلومات عن الفصيلة (مثال فصيلة السيارات يمكن أن ينتج كائنا Object مثل سيارة صغيرة وسيارة كبيرة وسيارة مكشوفة وسيارة رياضية وسيارة بثلاثة أبواب وسيارة بمقصورة إلخ)، ولا يمكن الوصول إلى المعلومات وتغييرها إلا من خلال العمليات الأساسية أو الاقترانات المصاحبة للصنف (Class)، كمثال آخر على ذلك فإن المواطن هو فصيلة بالنسبة لوزارة الداخلية، المواطن يحتوي على معلومات مثل الاسم وتاريخ الميلاد وتاريخ الوفاة إلخ. في حالة الحاجة إلى تغيير معلومة معينة فإن ذلك لا يحصل من أي مكان بل يحصل من خلال طلب رسمي إلى الوزارة (عملية أساسية أو اقتران) يحوي الوثائق اللازمة (المعطيات أو المدخلات [input parameters]) ومن ثم يحصل التعديل، في كثير من لغات البرمجة يستخدم اسم الصنف (الفصيلة class) كاسم الباني «Constructor» وهو الذي يعطينا الكائن «object» الناتج من الصنف. الباني هو عبارة عن مجموعة من الإجراءات أو الشفرة داخل دالة «Function أو Subroutine» بنفس اسم الصنف، وهو ما ينشئ الكائنات «objects»، أنواع الكائنات الناتجة تسمى مجسدا من «instance» الصنف. (المفاهيم السابقة يجب دراستها بعناية).[4]
ومن الممكن أن يُعَرَّفَ الصنف من ناحية أخرى بأنه مجموعة من المعلومات المترابطة عن شيء معين. والصنف يتكون من واجهة توصيل [interface] لتعريف كيفية ربط الصنف مع الكائنات الأخرى والبنية التي تصف كيفية بناء الصنف والمكونة من العمليات الأساسية والمعلومات حول الصنف، جميع لغات البرمجة الحديثة تدعم العمليات مصاحبة لصنف مثل الوراثة، لكنها في السابق كانت محدودة وتخضع للعديد من المعوقات.
لماذا التوجه نحو إنشاء الصنف
لغات البرمجة القديمة كانت تعمل من خلال المفسرات [Interpreter] حيث كان يتم تفسير وتشغيل الأوامر سطرا بعد سطر ولا يمكن تفادي الأخطاء أو التنقل من سطر إلى آخر. بمعنى آخر كان العمل يتم بطريقة تسلسلية. لا يمكن الانتقال من سطر 1 إلى سطر 3 دون المرور على سطر 2.