ผลต่างระหว่างรุ่นของ "การเขียนโปรแกรมเชิงวัตถุ"

จากวิกิพีเดีย สารานุกรมเสรี
เนื้อหาที่ลบ เนื้อหาที่เพิ่ม
MerlIwBot (คุย | ส่วนร่วม)
โรบอต เพิ่ม: ilo:Panangprograma a naitaratar iti bambanag
Addbot (คุย | ส่วนร่วม)
Bot: Migrating 64 interwiki links, now provided by Wikidata on d:q79872 (translate me)
ป้ายระบุ: ลบลิงก์ข้ามภาษา
บรรทัด 81: บรรทัด 81:


{{Link FA|vi}}
{{Link FA|vi}}

[[af:Objekgeoriënteerde programmering]]
[[ar:برمجة كائنية التوجه]]
[[az:Obyekt yönümlü proqramlaşdırma]]
[[be:Аб'ектна-арыентаванае праграмаванне]]
[[be-x-old:Аб’ектна-арыентаванае праграмаваньне]]
[[bg:Обектно-ориентирано програмиране]]
[[bn:অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং]]
[[bs:Objektno orijentisano programiranje]]
[[ca:Programació orientada a objectes]]
[[cs:Objektově orientované programování]]
[[da:Objektorienteret programmering]]
[[de:Objektorientierte Programmierung]]
[[el:Αντικειμενοστρεφής προγραμματισμός]]
[[en:Object-oriented programming]]
[[eo:Objektema programado]]
[[es:Programación orientada a objetos]]
[[et:Objektorienteeritud programmeerimine]]
[[eu:Objektuei orientatutako programazio]]
[[fa:برنامه‌نویسی شیءگرا]]
[[fi:Olio-ohjelmointi]]
[[fr:Programmation orientée objet]]
[[gl:Programación orientada a obxectos]]
[[he:תכנות מונחה-עצמים]]
[[hr:Objektno orijentirano programiranje]]
[[hu:Objektumorientált programozás]]
[[id:Pemrograman berorientasi objek]]
[[ilo:Panangprograma a naitaratar iti bambanag]]
[[io:Objekt-orientizita programifo]]
[[is:Hlutbundin forritun]]
[[it:Programmazione orientata agli oggetti]]
[[ja:オブジェクト指向]]
[[ka:ობიექტზე ორიენტირებული პროგრამირება]]
[[kk:Объектіге-бағытталған бағдарламалау]]
[[ko:객체 지향 프로그래밍]]
[[ky:Обжектке багытталган программалоо]]
[[lt:Objektinis programavimas]]
[[lv:Objektorientētā programmēšana]]
[[mk:Објектно-ориентирано програмирање]]
[[ml:ഒബ്ജക്റ്റ് ഓറിയന്റഡ് പ്രോഗ്രാമിങ് ഭാഷ]]
[[mn:Объект хандалтат програмчлал]]
[[ms:Pengaturcaraan berorientasi objek]]
[[my:အော့ဗ်ဂျက် အိုရီယင့်တက် ပရိုဂရမ်းမင်း]]
[[nl:Objectgeoriënteerd]]
[[nn:Objektorientert programmering]]
[[no:Objektorientert programmering]]
[[pl:Programowanie obiektowe]]
[[pt:Orientação a objetos]]
[[ro:Programare orientată pe obiecte]]
[[ru:Объектно-ориентированное программирование]]
[[rue:Обєктово орьєнтоване проґрамованя]]
[[scn:Prugrammazzioni urientata all'uggetta]]
[[sh:Objektno orijentisano programiranje]]
[[simple:Object-oriented programming]]
[[sk:Objektové programovanie]]
[[sq:Programimi i orientuar në objekte]]
[[sr:Објектно-оријентисано програмирање]]
[[sv:Objektorienterad programmering]]
[[ta:பொருள் நோக்கு நிரலாக்கம்]]
[[tr:Nesne Yönelimli Programlama]]
[[uk:Об'єктно-орієнтоване програмування]]
[[ur:برمجہ شئے التوجہ]]
[[vi:Lập trình hướng đối tượng]]
[[wuu:面向对象程式编制]]
[[zh:面向对象程序设计]]

รุ่นแก้ไขเมื่อ 05:31, 8 มีนาคม 2556

การเขียนโปรแกรมเชิงวัตถุ (อังกฤษ: Object-oriented programming, OOP) คือหนึ่งในรูปแบบการเขียนโปรแกรมคอมพิวเตอร์ ที่ให้ความสำคัญกับ วัตถุ ซึ่งสามารถนำมาประกอบกันและนำมาทำงานรวมกันได้ โดยการแลกเปลี่ยนข่าวสารเพื่อนำมาประมวลผลและส่งข่าวสารที่ได้ไปให้ วัตถุ อื่นๆที่เกี่ยวข้องเพื่อให้ทำงานต่อไป

แนวคิดการเขียนโปรแกรมแบบดังเดิมมักนิยมใช้ การเขียนโปรแกรมเชิงกระบวนการ (Procedural Programming) ซึ่งให้ความสำคัญกับขั้นตอนกระบวนการที่ทำ โดยแบ่งโปรแกรมออกเป็นส่วนๆตามลำดับขั้นตอนการทำงาน แต่แนวคิดการเขียนโปรแกรมเชิงวัตถุนั้นให้ความสำคัญกับ ข้อมูล(data) และ พฤติกรรม(behavior) ของวัตถุ และความสัมพันธ์กันระหว่างวัตถุกันมากกว่า

เปรียบเทียบแนวคิดระหว่างการเขียนโปรแกรมเชิงกระบวนการ และเชิงวัตถุ

ตัวอย่างตู้ขายเครื่องดื่มอัตโนมัติ

วิธีการคิดแบบการเขียนโปรแกรมเชิงกระบวนการ

เมื่อมีการหยอดเหรียญเข้าตู้

  1. ตรวจสอบจำนวนเหรียญและชนิดของเหรียญ
  2. แสดงผลชนิดของน้ำที่สามารถเลือกซื้อได้
  3. ตรวจสอบจำนวนน้ำกระป๋องที่มีอยู่ในตู้
  4. รับผลการเลือกชนิดน้ำ
  5. ส่งน้ำที่เลือกออกมาจากช่อง
  6. จัดเก็บเงินเข้าระบบ
  7. หากมีเงินทอน ให้ทอนเงินที่เหลือ ที่ช่องรับเงินทอน

แนวทางการออกแบบและแก้ปัญหา

ความท้าทายในการออกแบบและพัฒนาโปรแกรมเชิงวัตถุมีหลายด้าน โดยแนวทางดังต่อไปนี้ เป็นแนวทางที่ได้รับการยอมรับอย่างกว้างขวางในการใช้เพื่อแก้ไขปัญหา

ดีไซน์แพตเทิร์น - แบบแผนและแนวทางการออกแบบ

ในการออกแบบและการพัฒนาโปรแกรมเชิงวัตถุ ได้มีการรวบรวมบันทึกวิธีการแก้ปัญหาที่ใช้ได้ผลสำหรับปัญหาที่เกิดขึ้นซ้ำๆ เสมอๆ วิธีการแก้ไขเหล่านี้สามารถนำมาใช้ได้บ่อยๆ ในสถานการณ์ที่หลากหลาย บันทึกรวบรวมนี้มีชื่อเรียกเฉพาะว่า ดีไซน์แพตเทิร์น (Design Patterns)

Design Patterns ซึ่งเป็นหนังสือที่ออกจัดจำหน่ายเมื่อปี 2538 โดยผู้แต่งร่วม 4 คนได้แก่ Erich Gamma, Richard Helm, Ralph Johnson และ John Vlissides หรือที่รู้จักในนามของ GoF (Gang of four) ถือว่าเป็น แบบแผนและแนวทางการออกแบบ ที่ได้รับความนิยมและเป็นที่รู้จักอย่างกว้างขวางในการนำมาประยุกต์ใช้งานจริง

การเขียนโปรแกรมเชิงวัตถุและฐานข้อมูล

การเขียนโปรแกรมเชิงวัตถุและระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database Management Systems) ได้ถูกใช้งานร่วมกันอย่างแพร่หลายในปัจจุบัน แต่เนื่องจากฐานข้อมูลเชิงสัมพันธ์ไม่สามารถเก็บข้อมูลเชิงวัตถุได้โดยตรง จึงมีความจำเป็นที่จะต้องเชื่อมต่อเทคโนโลยีทั้งสองเข้าด้วยกัน การแก้ปัญหาสองแบบที่ได้รับความนิยมแพร่หลายคือการใช้ตัวส่งระหว่างโมเดลเชิงวัตถุและเชิงสัมพันธ์ (Object-Relational Mapping: ORM)

อีกวิธีการคือการใช้งานระบบจัดการฐานข้อมูลเชิงวัตถุ (Object-Relational Database Management Systems) แทนที่ระบบจัดการฐานข้อมูลเชิงสัมพันธ์ แต่วิธีการนี้ก็ยังไม่ได้รับความนิยมมากนัก

โปรแกรมเชิงวัตถุและการเทียบเคียงกับโลกของความเป็นจริง

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

ปัจจุบันวิธีการมาตรฐานที่ใช้ในการเทียบเคียงกับโลกของความเป็นจริง ตามแนวทางของคณิตศาสตร์คือ Circle-ellipse problem ซึ่งก็ถูกต้องบางส่วน แต่แนวคิดการสร้างยังคงต้องให้สอดคล้องกับความเป็นจริงของพื้นฐานธรรมชาติที่เป็นไปได้ผนวกกับคณิตศาสตร์ด้วย เพื่อให้เกิดสมดุล

ตัวอย่างภาษาที่สนับสนุนการเขียนโปรแกรมเชิงวัตถุ

แหล่งข้อมูลอื่น


แม่แบบ:Link FA