"Halo, Amigo! Saya ingin Anda memahami tujuan OOP. Jadi saya akan menceritakan sebuah kisah."

Pernah ada sebuah perusahaan kecil yang mengirimkan barang ke luar angkasa…

"Seperti Galactic Rush?"

"Ya, seperti Galactic Rush. Ada 5 orang yang bekerja di sana. Yang pertama menangani keuangan, yang kedua bekerja di gudang, yang ketiga melakukan pengiriman, yang keempat menangani periklanan, dan yang kelima mengawasi semuanya."

Mereka bekerja keras dan berkembang. Perusahaan memiliki reputasi yang baik dan menghasilkan banyak uang. Setiap tahun jumlah pesanan meningkat, sehingga CEO harus mempekerjakan lebih banyak karyawan. Beberapa untuk gudang, beberapa untuk melakukan pengiriman, satu kasir lagi, dan satu pemasar untuk meningkatkan penjualan.

Inilah saat masalah dimulai. Ada lebih banyak personel, dan mereka mulai mengganggu satu sama lain .

Pemasar menghabiskan semua uangnya untuk kampanye iklan baru, tidak menyisakan uang tunai untuk membeli barang yang seharusnya segera dikirim.

Gudang itu memiliki 10 kotak dengan hyperdrives baru untuk dikirim sebulan sekali. Satu kurir terbang dengan satu hyperdrive, menyebabkan pesanan klien lain untuk 10 hyperdrive ditunda sebulan lagi. Kurir pertama sama sekali tidak tahu tentang pesanan lain yang dipenuhi oleh kurir kedua.

Asisten CEO baru mengirim kurir ke kapal untuk membeli barang, dan yang lainnya menunggu kapal berikutnya yang tersedia. Ada banyak pengiriman mendesak, tetapi asisten ini hanya mengelola pembelian dan berusaha melakukan pekerjaannya dengan baik. Semakin baik satu orang melakukan tugasnya , semakin dia mengganggu yang lain .

Dalam menganalisis situasi, CEO menyadari bahwa sumber daya penting seperti kapal, uang tunai, dan barang tidak dibelanjakan secara optimal, melainkan atas dasar "siapa cepat dia dapat". Siapa pun dapat mengambil sumber daya untuk melakukan pekerjaan mereka, mengancam produktivitas karyawan dan perusahaan lainnya.

Sesuatu harus dilakukan. CEO memutuskan untuk membagi perusahaan monolitik menjadi beberapa departemen. Dia menciptakan departemen pengiriman, departemen pemasaran, departemen pembelian, departemen keuangan, dan departemen pergudangan. Sekarang tidak ada yang bisa mengambil kapal begitu saja. Kepala departemen pengiriman menerima semua informasi pengiriman dan menyerahkan kapal kepada kurir yang pengirimannya paling menguntungkan bagi perusahaan. Selain itu, pihak gudang tidak membiarkan kurir mengambil barang begitu saja. Mereka mengendalikan prosesnya. Bagian keuangan tidak bisa mengalokasikan uang untuk pemasaran, jika tahu akan ada pembelian dalam waktu dekat. Setiap departemen memiliki satu figur publik: kepala departemen. Struktur internal masing-masing departemen menjadi perhatiannya sendiri.Jika seorang kurir ingin mengambil beberapa barang, dia akan pergi ke pengelola gudang, bukan ke gudang. Ketika pesanan baru masuk, itu pergi ke kepala bagian pengiriman ( orang umum ), bukan kurir ( orang pribadi ).

Dengan kata lain, CEO mengelompokkan sumber daya dan tindakan ke dalam departemen , dan melarang orang lain mengganggu struktur departemen internal. Hanya orang-orang tertentu yang dapat dihubungi.

Dalam hal OOP, ini tidak lain adalah membagi program menjadi objek. Program monolitik, yang terdiri dari fungsi dan variabel, diubah menjadi program yang terdiri dari objek. Dan objek-objek ini berisi variabel dan fungsi.

"Tunggu sebentar. Jadi maksud Anda masalahnya adalah setiap karyawan memiliki akses tidak terbatas ke sumber daya dan dapat mengeluarkan perintah ke karyawan lain?"

"Iya benar sekali."

"Menarik. Kami memperkenalkan batasan kecil, tetapi kami menerima lebih banyak pesanan. Dan mereka dapat mempertahankan kontrol yang lebih baik atas segalanya."

"Ya. Pecah dan taklukkan dalam bentuknya yang paling murni."

"Seperti yang kamu katakan, pecahkan dan taklukkan. Itu sesuatu yang perlu diingat."