3.10.Sinf dizayni yo`riqnomalari Key Point. Sinflarni loyihalashga oid yo`riqnomalar sinflarni shakllantirish uchun foydali. Bu dars asosan ob’yektga yo`naltirilgan loyihalash bilan bog`liq. Ob’ektga yo`naltirilgan uslubiyatlar ko'p bo'lsa-da, UML ob’yektga yo`naltirilgan modellashtirishning standart belgisiga aylandi va o`zi metodologiyani boshqaradi. Sinflarni loyihalash jarayoni sinflarni identifikatsiyalashni va ular o`rtasida aloqa o`rnatishni talab etadi.
Yuqoridagi darslarda biz qanday qilib nusxalardan sinflarni yaratishni o`rgandik. Bu yerda shularga oid ba’zi yo`riqnomalar berilgan.
3.10.1. Uyg`unlik. Sinf bir butunlikni ifodalashi lozim va sinfning barcha amallari qo`yilgan maqsadga erishish uchun o`zaro mantiqiy bog`langan bo`lishi kerak. Masalan, biz talabalar sinfidan foydalanishimiz mumkin, lekin, biz talabalarni va xodimlarni bitta sinfda bog`lay olmaymiz. Chunki, talabalar va xodimlar turli tomonlar.
Juda ko`p munosabatlarga ega bo`lgan bir butunlik munosabatlarni ajratib olish uchun bir qancha sinflarga bo`linishi mumkin.
3.10.2. Tarkibiylik Standart dasturlash stili va nomlash qoidalariga e'tibor qaratamiz. Sinflar, ma'lumotlar maydonlari va funksiyalar uchun informativ nomlar tanlaymiz. C++ da ommalashgan stil – bu ma'lumotlar e'lonini funksiyalardan keyin qo`yish, konstruktorlarni esa funksiyalardan oldin joylashtirishdir.
Tarkibiy nomlarni tanlaymiz. Funksiyalarni qayta yuklashni qo`llab bajariladigan, bir-biriga o`xshash operatsiyalar uchun bir xil nom tanlash tavsiya etiladi.
Umuman olganda, jimlik qoidasi bo`yicha nusxa yaratish uchun, parametrsiz, ochiq konstruktorlarni berib o`tishimiz lozim. Agar konstruktor yaqqol aniqlanmagan bo`lsa, bo`sh tanaga ega bo`lgan, umumruxsat etilgan, argumentsiz konstruktorlarni taklif etish tavsiya etiladi.
3.10.3. Inkapsulyatsiya Mijozlarga ochiq murojaatni yashirish uchun sinfda private modifikatorini qo`llash lozim. Buni sinf shunchaki, ishchi holatda bajaradi.
Sinfda ma'lumotlar maydoni va o`qish uchun bo`lsa, get funksiyasini, agar ma'lumotlar maydoni yangilanishi mumkin bo`lsa, set funksiyasini kiritish mumkin. Shuningdek, sinf foydalanuvchi tomonidan qo`llanilishi ko`zda tutilmagan funksiyalarni yashirishi lozim. Bu kabi funksiyalar xususiy funksiya sifatida berilishi lozim.