การเขียนโปรแกรมแบบมีโครงสร้างกับการเขียนโปรแกรมเชิงวัตถุ
Object Oriented Programming (OOP) และ Structured Programming เป็นสองกระบวนทัศน์การเขียนโปรแกรม กระบวนทัศน์การเขียนโปรแกรมเป็นรูปแบบพื้นฐานของการเขียนโปรแกรมคอมพิวเตอร์ กระบวนทัศน์การเขียนโปรแกรมแตกต่างกันไปในแต่ละองค์ประกอบของโปรแกรมและวิธีการกำหนดขั้นตอนในการแก้ปัญหา ตามชื่อที่แนะนำ OOP มุ่งเน้นไปที่การแสดงปัญหาโดยใช้วัตถุและพฤติกรรมในโลกแห่งความเป็นจริง ในขณะที่การเขียนโปรแกรมแบบมีโครงสร้างเกี่ยวข้องกับการจัดระเบียบโปรแกรมในโครงสร้างเชิงตรรกะ
โครงสร้างการเขียนโปรแกรมคืออะไร
สันนิษฐานว่าปีเกิดของโปรแกรมมิ่งแบบมีโครงสร้างคือปี 1970 การเขียนโปรแกรมแบบมีโครงสร้างถือเป็นชุดย่อยของการเขียนโปรแกรมที่จำเป็น โปรแกรมที่มีโครงสร้างประกอบด้วยโครงสร้างโฟลว์โปรแกรมอย่างง่าย ซึ่งจัดเป็นลำดับชั้น คือ ลำดับ การเลือก และการทำซ้ำ ลำดับคือคำสั่งของคำสั่ง การเลือก หมายถึง การเลือกข้อความสั่งจากชุดคำสั่งตามสถานะปัจจุบันของโปรแกรม (เช่น การใช้คำสั่ง if) และการทำซ้ำ หมายถึง การดำเนินการคำสั่งจนกว่าจะถึงสถานะหนึ่ง (เช่น ใช้คำสั่ง for หรือ while) ALGOL, Pascal, Ada และ PL/I เป็นภาษาการเขียนโปรแกรมที่มีโครงสร้างบางส่วนที่ใช้ในปัจจุบัน
การเขียนโปรแกรมเชิงวัตถุคืออะไร
ใน OOP มุ่งเน้นไปที่การคิดถึงปัญหาที่จะแก้ไขในแง่ขององค์ประกอบในโลกแห่งความเป็นจริงและเป็นตัวแทนของปัญหาในแง่ของวัตถุและพฤติกรรมของพวกเขา ชั้นเรียนแสดงภาพนามธรรมของวัตถุในโลกแห่งความเป็นจริง ชั้นเรียนเป็นเหมือนพิมพ์เขียวหรือเทมเพลตที่รวบรวมสิ่งของหรือสิ่งของที่คล้ายกันที่สามารถจัดกลุ่มเข้าด้วยกันได้คลาสมีคุณสมบัติที่เรียกว่าแอตทริบิวต์ แอตทริบิวต์ถูกนำมาใช้เป็นตัวแปรส่วนกลางและอินสแตนซ์ เมธอดในคลาสแสดงหรือกำหนดพฤติกรรมของคลาสเหล่านี้ เมธอดและแอตทริบิวต์ของคลาสเรียกว่าสมาชิกของคลาส อินสแตนซ์ของคลาสเรียกว่าอ็อบเจ็กต์ ดังนั้น อ็อบเจ็กต์จึงเป็นโครงสร้างข้อมูลที่คล้ายกับวัตถุในโลกแห่งความเป็นจริงอย่างใกล้ชิด
มีแนวคิด OOP ที่สำคัญหลายประการ เช่น Data abstraction, Encapsulation, Polymorphism, Messaging, Modularity และ Inheritance โดยทั่วไป การห่อหุ้มทำได้โดยทำให้แอตทริบิวต์เป็นส่วนตัว ในขณะที่สร้างวิธีการสาธารณะที่สามารถใช้เพื่อเข้าถึงแอตทริบิวต์เหล่านั้น การสืบทอดอนุญาตให้ผู้ใช้ขยายคลาส (เรียกว่าคลาสย่อย) จากคลาสอื่น (เรียกว่าคลาสซุปเปอร์) Polymorphism ช่วยให้โปรแกรมเมอร์สามารถแทนที่อ็อบเจ็กต์ของคลาสแทนที่อ็อบเจ็กต์ของคลาสระดับสูง โดยทั่วไป คำนามที่พบในคำจำกัดความของปัญหาจะกลายเป็นคลาสในโปรแกรมโดยตรง และในทำนองเดียวกัน กริยาจะกลายเป็นวิธีการภาษา OOP ยอดนิยมบางภาษา ได้แก่ Java และ C
ความแตกต่างระหว่าง Structured Programming และ Object Oriented Programming
ข้อแตกต่างที่สำคัญระหว่าง Structured Programming และ OOP คือจุดเน้นของ Structured Programming คือการจัดโครงสร้างโปรแกรมให้อยู่ในลำดับชั้นของโปรแกรมย่อย ในขณะที่จุดเน้นของ OOP คือการแบ่งงานการเขียนโปรแกรมออกเป็นอ็อบเจ็กต์ซึ่งห่อหุ้ม ข้อมูลและวิธีการ OOP ถือว่ามีความยืดหยุ่นมากกว่าการเขียนโปรแกรมแบบมีโครงสร้าง เนื่องจาก OOP แยกโปรแกรมออกเป็นเครือข่ายของระบบย่อย แทนที่จะจัดโครงสร้างโปรแกรมเป็นลำดับชั้น แม้ว่าการจัดโครงสร้างจะมีความชัดเจนอยู่บ้าง แต่การเปลี่ยนแปลงเล็กน้อยในโปรแกรมที่มีโครงสร้างขนาดใหญ่มากอาจทำให้ต้องเปลี่ยนโปรแกรมย่อยหลายๆ โปรแกรมย่อย