Please enable JavaScript.
Coggle requires JavaScript to display documents.
หลักการเขียนโปรแกรมเชิงวัตถุ OBJECT ORIENTED…
หลักการเขียนโปรแกรมเชิงวัตถุ OBJECT ORIENTED PROGRAMMING
INHERITANCE IN JAVASCRIPT
INHERITANCE
คลาสใหม่จะนำแอตทริบิวต์และเมธอดของคลาสเดิมมาใช้
คลาสที่ถ่ายทอดเรียก คลาสแม่ คลาสที่ได้รับเรียก คลาสลูก
คลาสตั้งต้นจะถูกคัดลอกไปยังคลาสที่ได้รับ
คลาสลูกสามารถต่อเติม/ปรับปรุงแก้ไข แอตทริบิวต์และเมธอดของตัวเองได้
Multiple inheritance
เป็นประเด็นที่ละเอียดอ่อนมีคุณสมบัติพิเศษที่สืบทอดถ้ามีมากกว่าหนึ่ง Super Class
สามารถแก้ไขได้หลายวิธีรวมถึงการใช้การสืบทอดเสมือนจริง
คลาสสามารถสืบทอดคุณสมบัติจากคลาสแม่มากกว่าหนึ่งรายการ
Overriding method
การคำนวณหาพื้นที่ของรูปทรงเรขาคณิตต่างๆ ที่มีสูตรคำนวณที่แตกต่างกัน
การคำนวณค่าแรงของพนักงานที่มีวิธีคำนวณที่แตกต่างกันไปในแต่ละตำแหน่ง
Overriding การเปลี่ยนแปลงการทำงานของเมธอดในคลาสลูกที่สืบทอดมาจากคลาสแม่
เมธอดในคลาสลูกจะมีชื่อเมธอด,ชนิดข้อมูลที่คืนค่า,จำนวนและชนิดของข้อมูลอาร์กิวเมนต์ที่เหมือนกับคลาสแม่
Overload Constructor
สามารถ Overload Constructor ในคลาสแม่ได้ตามปกติ
คลาสลูกสามารถใช้ Constructor ของคลาสแม่ได้โดยใช้คีย์เวิร์ด super
Constructor เป็นสิ่งที่คลาสลูกไม่สามารถสืบทอดจากคลาสแม่ได้
ENCAPSULATION IN JAVASCRIPT
ENCAPSULATION
Easy Way to Encapsulation in JavaScript
ได้รองรับการห่อหุ้มข้อมูลจริงมาโดยตลอด และง่ายมากในการประกาศข้อมูล แบบ private ด้วยวิธีการปิด
เมธอดพิเศษ (privileged method) คือ วิธีการที่เข้าถึงข้อมูลแบบ private ภายในขอบเขต
สถานะเปลี่ยนแปลงในฟังก์ชันที่มีอยู่ในการเปลี่ยนแปลงสำหรับทุกฟังก์ชัน เมื่อเราเรียก counter.click() จะเปลี่ยนค่าที่ counter.getCount()
เพียงแค่ใส่ฟังก์ชัน ที่ใช้สร้างอินสแตนซ์ใหม่ของวัตถุฟังก์ชันมักจะเป็นตัวเลือก โดยใช้ keyword คำว่า New
การใช้ฟังก์ชันให้อิสระและความยืดหยุ่นในกสรเปลี่ยนกระบวนการอินสแตนซ์ของวัตถุโดยที่ผู้ใช้ไม่ได้รับรู้ถึงการเปลี่ยนแปลง
ได้รับการห่อหุ้มเพราะความเรียบง่าย
การใช้ Private Fields ซึ่งจะสนับสนุนการแสดงผลใน Chrome,Opera,Android,Browser
การใช้ Factory Function และ Private Fields โดยใช้การห่อหุ้มแบบปิดเพื่อใช้คลาสและฟิลด์ที่เฉพาะเจาะจงของคลาสใหม่
หลักการของการออกเเบบซอฟต์แวร์
หลีกเลี่ยงสถานะที่ไม่แน่นอน
จากโปรแกรมไปยังส่วนต่อประสานไม่ใช่การใช้งาน
การเปลี่ยนแปลงข้อกำหนดเล็กน้อยย่อมจำเป็นต้องมีการเปลี่ยนเปลงเล็กน้อยในซอฟต์แวร์
การใช้งานแอตทริบิวต์หรือเมธอด กำหนดเป็น public
สามรถจำกัดสิทธิการใช้งานด้วยระดับของ access
การซ่อนรายละเอียด กำหนดเป็น Private
ไม่สามารถเรียกใช้หรือเปลี่ยนแปลงค่าได้
การห่อหุ้ม ไม่ให้ออบเจ็กต์ภายนอกเข้าถึงข้อมูล
Why Encapsulation?
ควบคุมคุณสมบัติและวิธีการเรียนได้ดีขึ้น
แอ็ตทริบิวต์ของคลาส สามารถทำเป็นแบบอ่านหรือเขียนอย่างเดียว
โปรแกรมเมอร์สามารถเปลี่ยนรหัสส่วนหนึ่งได้โดยไม่กระทบส่วนอื่น
ปัญหาเกี่ยวกับสถานะที่ไม่แน่นอนที่ใช้ร่วมกัน หากสถานะอินพุตของคำสั่งขึ้นอยู่กับสถานะเอาต์พุตของคำสั่งอื่นๆ
การห่อหุ้มเป็นวิธีในการจัดการกับปัญหา การตัดสินใจเลือกโครงสร้างข้อมูลก่อนเพื่อแสดงข้อมูล
รายละเอียดการใช้งานเหล่านั้นหลัง interface แล้วทุกอย่างที่ใช้วัตถุจะทำผ่าน interface เท่านั้น
ในช่วงทศวรรษที่1960และ1970 โปรแกรมเมอร์เกิดปัญหาเกี่ยวกับการใช้ทรัพยาก่อน
ได้รับแรงบันดาลใจเป็นพิเศษจากการที่เซลล์ถูกห่อหุ้มด้วยเยื่อหุ้มเซลล์และสื่อสารผ่านการส่งข้อความ
แนวคิดทั้งหมดมารวมกันเพื่อสร้างรากฐานของOOP: การห่อหุ้มและการส่งข้อความ
POLYMORPHISM IN JAVASCRIPT
มี 2 ประเภท
Dynamic or Runtime polymorphism สามารถทำงานได้ด้วย Overloading Method ข้อดีคือการจัดสรรพื้นที่หน่วยความจำสำหรับ Method ในเวลาเดียวกัน
Static or Compile time polymorphism สามารถทำงานได้ด้วย Overloading Method มีการสร้างพื้นที่หน่วยความจำในเวลาประมวลผลเมื่อเชื่อมโยงกับ object
เกิดขึ้นเมื่อเรามีหลายคลาสที่เกี่ยวข้องกันโดยสืบทอด(inheritance)
สามารถใช้ super class สำหรับการประกาศตัวแปรของ ออบเจ็คที่สร้างออบเจ็คจาก super class ได้
ออบเจ็คมีหลายรูปแบบ เกิดจากการสืบทอดจาก super class และคงรักษาสภาพคุณสมบัติของ super class ไว้
ABSTRACTION IN JAVASCRIPT
Polymorphism ในบางภาษาจะมี abstract/interface keyword มาเพื่อระบุ class
จัดการความซับซ้อนของระบบโดยการซ่อนรายละเอียดภายในและเขียนไว้ในระบบย่อยหลายระบบ
เป็นการเอาส่วน concrete ของ class โดยรักษาลักษณะร่วมกัน
คลาสนั้นเปรียบเสมือนเทมเพลตสำหรับสร้างวัตถุหลายรายการที่มีคุณสมบัติเดียวกัน แต่บันทึกค่าข้อมูลที่แตกต่างกัน