วันอังคารที่ 12 สิงหาคม พ.ศ. 2551

Java Programming: ความแตกต่างของการเขียนโปรแกรมเชิงโครงสร้าง และโปรแกรมเชิงวัตถุ


การเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) นั้นจะแยกส่วนของข้อมูลจากฟังก์ชันอย่างชัดเจน ซึ่งการแยกข้อมูลจากฟังก์ชันนั้นมักจะมีผลให้เกิดความสับสน และค่อนข้างยากในการปรับปรุงแก้ไขโดยเฉพาะกับโปรแกรมขนาดใหญ่

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

การเขียนโปรแกรมเชิงโครงสร้างเน้นการแปลงสิ่งที่มีอยู่จริงให้อยู่ในกฏเกณฑ์ของโปรแกรมภาษา แต่การเขียนโปรแกรมเชิงวัตถุนั้นเน้นการแปลงให้โปรแกรมภาษาอยู่ในรูปแบบของสิ่งที่มีอยู่จริง

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

การเขียนโปรแกรมเชิงวัตถุจะมองรถยนต์คือการรวมกันของกลุ่มพฤติกรรม (behaviors) และสถานะต่าง ๆ ของรถคันนั้น (values of data) การรวมตัวระหว่างตัวแปรสถานะ และพฤติกรรมจะได้ผลลัพธ์เป็นวัตถุ (object) เราสามารถสร้างวัตถุได้ง่าย ๆ เหมือนกับที่เราสร้างตัวแปรทั่วไป ในโปรแกรมเชิงวัตถุนั้นจะระบุวัตถุที่จะใช้และเรียกใช้งานฟังก์ชันของมันในเวลาใด ๆ ก็ได้