JavaRush /Kurslar /All lectures for UZ purposes /OOP paydo bo'lish sabablari

OOP paydo bo'lish sabablari

All lectures for UZ purposes
Daraja, Dars
Mavjud

— Salom, Amigo! Men senga OOPning ahamiyatini tushuntirishni xohlayman. Buning uchun senga bir hikoya aytib beraman.

Kosmosda tovarlarni yetkazib berish bilan shug'ullangan kichik bir kompaniya bor edi...

— Galactic Rush singari?

— Ha, Galactic Rush kabi. Unda 5 kishi ishlardi. Biri moliyaviy ishlar bilan shug'ullanar edi, ikkinchisi omborxonada ishlardi, uchinchisi yetkazib berish bilan shug'ullanar edi, to'rtinchisi reklama ishlarini boshqarardi, beshinchisi esa shu hammasini boshqarardi.

Ular juda harakatchan edilar va hamma narsani uddalardilar. Kompaniya yaxshi obro'ga ega edi va ko'p pul topardi. Ammo buyurtmalar yildan-yilga ko'payib bordi, shuning uchun direktor qo'shimcha ishchilarni yollashga majbur bo'ldi. Bir necha kishi omborxona uchun, bir necha kishi yetkazib berish uchun, yana bir kassir va reklamachi bozorni kengaytirish uchun qo'shildi.

Va shu yerda muammolar boshlandi. Odamlar ko'payib ketdi va ular bir-biriga halaqit bera boshladi.

Marketingchi barcha pullarni yangi reklamaga sarflaydi va kassada tovarlarni xarid qilish uchun pul yo'q, ular tezda jo'natilishi kerak.

Omborda oyiga bir marta etkazib beriladigan yangi giper dvigatellar bilan 10 ta quti bor. Kuryer bir giper dvigatelni olib ketdi va boshqa mijozdan 10 ta giper dvigatel uchun buyurtma yana bir oy kutishga majbur. Birinchi kuryer boshqa kuryerning bajarayotgan buyurtmasi haqida bilmas edi.

Direktorning yangi yordamchisi kuryerni tovarlar sotib olish uchun kema bilan jo'natadi va boshqalar esa mavjud kema paydo bo'lguncha kutishadi. Ko'plab shoshilinch yetkazmalar bor, lekin bu yordamchi faqat sotib olish bilan shug'ullanar va o'z ishini yaxshi bajarishga harakat qilar. Inson o'z vazifalarini qanchalik yaxshi bajarsa, u shunchalik boshqalarga halaqit berardi.

Holatni tahlil qilishga urinib, direktor tushundi, bunday muhim resurslar, masalan, kema, naqd pul va tovarlar samarali tarzda sarflanmaydi, aksincha, "kim birinchi keldi – o'sha oldi" prinsipi bo'yicha. Har qanday kishi kerak bo'lgan resursni olib, boshqalarning, hatto butun kompaniyaning xavf ostiga qo'ydi.

Nimani qilish kerak edi, direktor kompaniyani bir necha bo'limga ajratishga qaror qildi. Endi etkazib berish bo'limi, marketing bo'limi, sotib olish bo'limi, moliyaviy bo'lim va zapas bo'limi bor edi. Endi hech kim shunchaki kema olib ketolmasdi. Etkazib berish bo'limi direktori barcha yetkazmalar haqida ma'lumotga ega bo'lib, kompaniya uchun foydali yetkazmaning kuryeriga kemani berardi. Omborxona ham hech qanday kuryerga har qanday tovarni olib ketishga ruxsat bermas, bu jarayonni nazorat qilardi. Moliyaviy bo'lim marketing uchun pul bermasdi, agar yaqin orada xarid bo'lishini bilsa. Har bir bo'limning bitta jamoat yuzasi – uning boshlig'i bor edi. Har bir bo'limning ichki tuzilishi uning ichki ishlari edi. Agar kuryer tovar olishni xohlasa, ombor rahbariga borar edi, omborga emas. Agar yangi ariza paydo bo'lsa, uni etkazib berish bo'limi direktori (public person) olar edi, kuryer (private person) emas.

Qisqasi, direktor resurslar va ularga qo'yiladigan harakatlarni guruhlarga (bo'limlarga) birlashtirdi, shuningdek, boshqa kishilarga bo'limlarning ichki tuzilishiga aralashishni taqiqladi. Faqat ma'lum bir shaxs bilan aloqa qilish mumkin edi.

OOP nuqtai nazaridan, bu ob'ektlarga dasturiy bo'linish deb ataladi. Funktsiyalar va o'zgaruvchilardan iborat monolit dastur, ob'ektlardan iborat dasturga aylanadi. Ob'ektlar ichida o'zgaruvchilar va funktsiyalar mavjud bo'ladi.

— To'xta. Muammo shundaki, har qanday xodim har qanday resurs bilan nazoratsiz ishlashi va har kimga buyruq berishi mumkin edi?

— Ha, aynan shunday.

— Qiziq. Biz kichik bir cheklovni joriy etdik, lekin ko'proq tartibga ega bo'ldik. Shuningdek, bularning barchasini yaxshiroq boshqarish imkoniga ega bo'ldik.

— Ha. "Bo'lin va boshqar" degan toza shakldagi ibora.

— Qanday yaxshi aytding — "bo'lin va boshqar". Buni eslab qolish kerak.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION