"สวัสดี Amigo! ฉันต้องการให้คุณเข้าใจจุดประสงค์ของ OOP ดังนั้นฉันจะเล่าเรื่องให้คุณฟัง"

เมื่อมีบริษัทเล็กๆ แห่งหนึ่งที่ส่งสินค้าไปยังนอกโลก...

"ชอบกาแลกติกรัชไหม"

“ใช่ เหมือนกับ Galactic Rush มีคนทำงานที่นั่น 5 คน คนแรกดูแลเรื่องการเงิน คนที่สองทำงานในโกดัง คนที่สามดูแลเรื่องการขนส่ง คนที่สี่ดูแลเรื่องโฆษณา และคนที่ห้าดูแลเรื่องทั้งหมด”

พวกเขาทำงานหนักและเจริญรุ่งเรือง บริษัทมีชื่อเสียงที่ดีและทำเงินได้มากมาย จำนวนคำสั่งซื้อเพิ่มขึ้นทุกปี ดังนั้น CEO จึงต้องจ้างพนักงานเพิ่มขึ้น หลายรายการสำหรับคลังสินค้า หลายรายการสำหรับจัดส่ง แคชเชียร์อีกรายการหนึ่ง และนักการตลาดเพื่อเพิ่มยอดขาย

นี่คือตอนที่ปัญหาเริ่มต้นขึ้น มีบุคลากรมากขึ้นและพวกเขาก็เริ่มยุ่งเกี่ยวกับกันและกัน

นักการตลาดใช้เงินทั้งหมดไปกับแคมเปญโฆษณาใหม่โดยไม่มีเงินเหลือเพื่อซื้อสินค้าที่ควรจัดส่งอย่างเร่งด่วน

คลังสินค้ามีกล่อง 10 กล่องพร้อมไฮเปอร์ไดร์ฟใหม่เอี่ยมที่จะจัดส่งเดือนละครั้ง ผู้ให้บริการขนส่งรายหนึ่งบินออกไปพร้อมกับไฮเปอร์ไดรฟ์หนึ่งตัว ทำให้คำสั่งซื้อของลูกค้ารายอื่นสำหรับไฮเปอร์ไดรฟ์ 10 ตัวล่าช้าออกไปอีกหนึ่งเดือน ผู้จัดส่งรายแรกไม่ทราบเกี่ยวกับคำสั่งซื้ออื่น ๆ ที่จัดส่งโดยผู้จัดส่งรายที่สอง

ผู้ช่วย CEO คนใหม่ได้ส่งคนส่งของบนเรือเพื่อซื้อสินค้าส่วนอย่างอื่นรอเรือลำถัดไปที่มีอยู่ มีการจัดส่งด่วนมากมาย แต่ผู้ช่วยคนนี้จัดการเฉพาะการซื้อและพยายามทำงานของเขาให้ดี ยิ่งคนหนึ่งทำหน้าที่ของเขา ได้ดี เท่าไหร่ เขาก็ยิ่งแทรกแซงส่วนที่เหลือมากขึ้นเท่านั้น

ในการวิเคราะห์สถานการณ์ CEO ตระหนักว่าทรัพยากรที่สำคัญ เช่น เรือ เงินสด และสินค้าไม่ได้ถูกใช้อย่างเหมาะสม แต่ใช้วิธี "มาก่อนได้ก่อน" ใครก็ตามสามารถใช้ทรัพยากรเพื่อปฏิบัติงานของตนได้ คุกคามประสิทธิภาพการทำงานของพนักงานที่เหลือและบริษัท

สิ่งที่ต้องทำ CEO ตัดสินใจแบ่งบริษัทขนาดใหญ่ออกเป็นหลายแผนก เขาได้สร้างแผนกจัดส่ง แผนกการตลาด แผนกจัดซื้อ แผนกการเงิน และแผนกคลังสินค้า ตอนนี้ไม่มีใครสามารถขึ้นเรือได้ หัวหน้าแผนกจัดส่งได้รับข้อมูลการจัดส่งทั้งหมดและออกเรือให้กับผู้จัดส่งซึ่งการจัดส่งจะทำกำไรได้มากที่สุดสำหรับบริษัท นอกจากนี้ โกดังยังไม่อนุญาตให้คนส่งของรับสินค้าเท่านั้น พวกเขาควบคุมกระบวนการ แผนกการเงินไม่สามารถจัดสรรเงินสำหรับการตลาดได้ หากรู้ว่าจะมีการซื้อในไม่ช้า แต่ละแผนกมีบุคคลสาธารณะหนึ่งคน: หัวหน้าแผนก โครงสร้างภายในของแต่ละแผนกเป็นปัญหาของตัวเองหากคนส่งของต้องการรับสินค้า เขาจะไปหาผู้จัดการคลังสินค้า ไม่ใช่ไปที่โกดัง เมื่อมีคำสั่งซื้อใหม่เข้ามา หัวหน้าแผนกจัดส่ง ( บุคคล สาธารณะ ) ไม่ใช่ผู้จัดส่ง ( บุคคลธรรมดา )

กล่าวอีกนัยหนึ่งCEO จัดกลุ่มทรัพยากรและการดำเนินการออกเป็นแผนกต่างๆและห้ามไม่ให้ผู้อื่นแทรกแซงโครงสร้างแผนกภายใน ติดต่อได้เฉพาะบุคคลเท่านั้น

ในแง่ของ OOP ไม่มีอะไรอื่นนอกจากการแยกโปรแกรมออกเป็นวัตถุ โปรแกรมแบบ monolithic ซึ่งประกอบด้วยฟังก์ชันและตัวแปร จะถูกแปลงเป็นโปรแกรมที่ประกอบด้วยวัตถุ และวัตถุเหล่านี้ประกอบด้วยตัวแปรและฟังก์ชัน

"เดี๋ยวก่อน คุณกำลังจะบอกว่าปัญหาคือพนักงานทุกคนเข้าถึงทรัพยากรได้อย่างไม่จำกัดและสามารถออกคำสั่งให้พนักงานคนอื่นได้"

"ใช่แน่นอน"

"น่าสนใจ เราแนะนำข้อจำกัดเล็กๆ น้อยๆ แต่เราได้รับคำสั่งเพิ่มเติม และพวกเขาก็สามารถควบคุมทุกอย่างได้ดีขึ้น"

"ใช่ แบ่งและพิชิตในรูปแบบที่บริสุทธิ์ที่สุด"

"อย่างที่คุณพูด แบ่งแยกแล้วพิชิต นั่นคือสิ่งที่ต้องจำไว้"