คำศัพท์ Object-Oriented programming


คำศัพท์ Object-Oriented programming


Abstraction

    ในทาง OOP การทำ Abstraction คือการซ่อน attribute และ behaviour ทุกอย่างที่ไม่เกี่ยวข้องกับ object เพื่อช่วยลดความซับซ้อนและเพิ่มประสิทธิภาพในการใช้งานAbstraction คือการแสดงถึงคุณลักษณะและพฤติกรรมของ object เท่าที่จำเป็นต้องรับรู้และใช้งานโดยซ่อนส่วนที่เหลือเอาไว้เพื่อไม่ให้เกิดความสับสน(data hidding และ encapsulation) วิธีการสร้างให้                                 ระบบเรามีคุณสมบัติ Abstraction คือใช้หลักของ Abstract Class หรือ Interface



 Encapsulation

     encapsulation คืออะไร
โดยทั่วไป encapsulation คือการรวมของสิ่งหนึ่งภายในอีกสิ่ง ดังนั้นสิ่งที่รวมไม่ปรากฎ decapsulation คือขจัดหรือทำให้สิ่งของปรากฎเหมือนก่อนการทำ encapsulation


 1) ใน object-oriented programming, encapsulation คือการรวมภายในอ๊อบเจคโปรแกรมของทรัพยากรทั้งหมดที่จำเป็นสำหรับอ๊อบเจคให้ทำงาน โดยพื้นฐานคือ เมธอด และข้อมูล อ๊อบเจคได้รับการกล่าวถึง “ตีพิมพ์อินเตอร์เฟซของตัวเอง” อ๊อบเจคอื่นยึดติดกับอินเตอร์เฟซเหล่านี้เพื่อใช้อ๊อบเจคนี้โดยปราศจากความกังวลการทำงานกับอ๊อบเจค ความคิดคือ “ไม่บอกว่าจะเรื่องนี้อย่างไร ให้ทำ” อ๊อบเจคสามารถคิดถึงการบรรจุอะตอม อินเตอร์เฟซของอ๊อบเจคประกอบด้วยเมธอดสาธารณะและข้อมูลประกอบ
  2) ในด้านโทรคมนาคม encapsulation เป็นการรวมของโครงสร้างข้อมูลหนึ่งภายในอีกโครงสร้าง ดังนั้นโครงสร้างข้อมูลแรกได้รับการซ่อนตามเวลา ตัวอย่าง แพ็คเก็ตข้อมูลฟอร์แม็ต TCP/IP สามารถห่อหุ้มภายในเฟรม ATM (อีกชนิดของการส่งผ่านข้อมูล) ภายในบริบทของการส่งผ่านและรับเฟรม ATM แพ็คเก็ตที่ห่อหุ้มเป็นกระแสของบิตระหว่างข้อมูล ATM ที่อธิบายการส่งผ่าน


 Modularity


Modularity

dulari

            Modularity หมายถึงการแบ่งระบบงาน

ที่มีขนาดใหญ่และซับซ้อนออกเป็นส่วนย่อยๆซึ่งจะ

ทำให้สามารถเข้าใจแต่ละส่วนได้ง่ายขึ้น

Toolsเครื่องมือที่สำคัญที่ใช้เช่น Structure

chart, Class diagram, UML
•คุณสมบัติที่พึงประสงค์ของ Modularity
  1. Coupling: เป็นตัววัดหรือบ่งบอกระดับ
ของ
ความสัมพันธ์ระหว่าง 2
          โมดุลใดๆ เราต้องการให้ค่า coupling ต่ำๆ 
coupling มี 5 ระดับคือ
  * Data coupling  * Stamp coupling
  * Control coupling  * Global coupling
  * Content coupling

                  

       Cohesion: เป็นตัววัดหรือบ่งบอกระดับการเกาะตัวกันหรือยึดเหนี่ยวกันระหว่างคำสั่งภายใน

โมดุลเดียวกัน ความต้องการคือในแต่ละโมดุลเราอยากให้ค่า cohesion สูงๆ cohesion มี ระดับคือ

  * Functional cohesion
  * Sequential cohesion
  * Communicational cohesion
  * Procedural cohesion
  * Temporal cohesion
  * Logical cohesion  * Coincidental cohesion

 Hierarchy


Hierarchy
คือการจัดกลุ่มสิ่งต่างๆตามระดับของ Abstraction โดยการใช้โครงสร้างแบบต้นไม้ (Tree structure)
Hierarchy ช่วยทำให้เราเห็นถึงความเหมือนกันหรือแตกต่างกันของสิ่งต่างๆได้ง่ายขึ้น
เช่น เรากำหนดกรอบของ Objectนาฬิกาโดยใช้ ชนิดของการแสดงเวลา เราก็จะได้กลุ่มของนาฬิกาแบบอนาล็อก และกลุ่มของนาฬิกาแบบดิจิตอล แต่ถ้าเรากำหนดกรอบใหม่เป็นชนิดของพลังงานที่นาฬิกาใช้เราก็จะได้กลุ่มของนาฬิกาที่ใช้ถ่าน, นาฬิกาที่ใช้พลังงานแสงอาทิตย์, นาฬิกาที่ใช้พลังงานจากการเคลื่อนไหว เป็นต้น




 class


Class คืออะไร
   Class คือ กลุ่มของ Object ที่มีโครงสร้างพื้นฐานพฤติกรรมเดียวกัน ดังนั้น Object ที่มีคุณสมบัติลักษณะเดียวกันนี้ จะรวมกลุ่มอยู่ใน Class เดียวกัน จึงสามารถสรุปได้ว่า Class คือ ต้นแบบข้อมูล ที่มีไว้เพื่อสร้าง Object นั่นเอง Class นอกจากจะมีชื่อ Class ที่บอกคุณสมบัติของ Class นั้นแล้ว ยังมี Attribute และ Operation ต่างๆ ซึ่งเป็นตัวอธิบายรายละเอียด และหน้าที่ต่างๆด้วย
   ตัวอย่าง Class เช่น 
   Class คือ แบบรูปดาวที่สร้างจากแม่แบบ (Template) และ Object คือ ดาวที่สร้างจากแม่แบบรูปดาว หรือ Class นั้นเอง ซึ่ง Object ที่ถูกสร้างขึ้นมาจะมีลักษณะเหมือนกับ Class ที่เป็นต้นแบบ แต่โดยคุณสมบัติของ Object แล้ว จะสามารถเพิ่มคุณสมบัติเฉพาะของตัวเองขึ้นมาได้ เช่น เพิ่มสีขึ้นมาเป็นคุณสมบัติเฉพาะตัวเองขึ้นมาได้ ทำให้ดาวแต่ละรูปมีสีสันที่ต่างกันไป แต่คุณสมบัติพื้นฐานจะได้รับการสืบทอดมาจาก class ที่เป็นต้นแบบยังเหมือนเดิม นั้นคือขนาดของรูปดาวจะเท่ากันทุกรูป เพราะได้จากแม่พิมพ์ตัวเดียวกัน หรือ มาจาก class เดียวกันนั้นเอง 

  ประโยชน์ของ Class
  จะเห็นได้ว่า Class ของการสร้างรูปดาวนั้น จะประกอบด้วยวิธีการทำ ซึ่งทำถ้ามีวิธการที่ต่างกันออกไป เช่น มีการผสมสีต่างๆ ให้รูปดาวแต่ละรูปมีสีที่ไม่เหมือนกันแล้ว เราก็จะได้รูปดาวที่มีลักษณะเฉพาะที่ต่างกัน นั้นคือมีสีที่ไม่เหมือนกัน ลองนึกเปรียบเทียบกับการเขียนโปรแกรม ซึ่งมีความซับซ้อน หลายขั้นตอน ใน 1 class เมื่อ โปรแกรมเมอร์จำเป็นต้องแก้ไข หรือพัฒนาโปรแกรมนั้น เค้าจะทำอย่างไร ? โปรแกรมเมอร์ก็เพียงเข้าไปดูใน class แล้วแก้ไขหรือเพิ่มเติมขั้นตอนต่างๆแทรกลงใน class ไม่จำเป็นต้องนั่งไล่วิธีต่างๆตั้งแต่แรก ซึ่งทำให้การแก้ไขโปแกรมของโปรแกรมเมอร์เป็นไปได้โดยง่าย เพราะโปรแกรมถูกจัดให้เป็นสัดส่วนไว้แล้ว

 object


Object คืออะไร
            ใน object-oriented programmable (OOP), object เป็นสิ่งที่ต้องการคิดถึงเป็นสิ่งแรก ในการออกแบบโปรแกรม และเป็นหน่วยของรหัสที่มาจากกระบวนการ ในแต่ละอ๊อบเจคที่สร้างใน class ของอ๊อบเจค และ class ได้รับการกำหนด ดังนั้น อ๊อบเจคสามารถแบ่งแบบจำลองและใช้ class definition ใหม่ในชุดคำสั่ง แต่ละอ๊อบเจคเป็น instance ของ class หรือ sub class ด้วยเมธอดของ class หรือ procdure และตัวแปร อ๊อบเจคเป็นสิ่งที่ทำงานในคอมพิวเตอร์
Object คือ วัตถุ สิ่งที่เป็นรูปธรรมและนามธรรม ที่มีอยู่จริงบนพื้นโลก (real-world)
  -สิ่งที่มีลักษณะเป็นรูปธรรม (จับต้องได้) เช่น จักรยาน, รถ, สุนัข, องค์กร, ใบรายการสินค้า, เป็นต้น
  -สิ่งที่มีลักษณะเป็นนามธรรม (จับต้องไม่ได้) เช่น ความเป็นเจ้าของ, ความคิด, ความรู้สึก เป็นต้น
object จะประกอบด้วย 2 ส่วนปฏิบัติการคือ attribute และ method
  1. Attribute หรือ Object Data กลับมาดู ถ้าเรามอง สุนัขเป็น Object สิ่งที่เป็น attribute ของ Object สุนัข ก็คือ ชื่อของสุนัข , เพศของสุนัข และ พันธ์ของสุนัข นั้นเอง หรือ ถ้าเรามอง เครื่องคอมพิวเตอร์ ของเราเป็น Object ส่วนที่เป็น attribute ของ Object เครื่องคอมพิวเตอร์ ก็จะเป็น ชนิดของคอมพิวเตอร์ , ยี่ห้อ หรือ รุ่น ของเครื่องคอมพิวเตอร์ นั้นเอง
  2. Method หรือ Object Behavior แปลเป็นไทยก็ ส่วนของพฤติกรรม ของ Object อย่างเช่น Object สุนัข จะมี method เป็น เห่า , วิ่ง หรือ กินข้าว และ เครื่องคอมพิวเตอร์ จะมี method เป็น การคำนวน , เล่นเกมร์ , วาดรูป
  
   ในด้านเทคโนโลยีคอมพิวเตอร์ ศัพท์คำว่า Object ถูกนำมาใช้ด้านการเขียนโปรแกรม ที่เรียกว่า โปรแกรมเชิงวัตถุ (OOP ย่อมาจาก Object Oriented Programming) ซึ่งหมายถึง การโปรแกรมที่เสมือนจริง มีลักษณะเสมือนธรรมชาติมากที่สุด แนวคิดของการเขียนโปรแกรมเชิงวัตถุนั้นให้ความสำคัญกับ ข้อมูล(data) และ พฤติกรรม(behavior) ของวัตถุ และความสัมพันธ์กันระหว่างวัตถุ ต่างกับ แนวคิดการเขียนโปรแกรมแบบดังเดิมมักนิยมใช้ การเขียนโปรแกรมเชิงกระบวนการ (Procedural Programming) ซึ่งให้ความสำคัญกับขั้นตอนกระบวนการที่ทำ โดยแบ่งโปรแกรมออกเป็นส่วนๆตามลำดับขั้นตอนการทำงาน ในการเขียนโปรแกรมเชิงวัตถุ ในโปรแกรมหนึ่งๆมีหลาย Object  โดยแต่ละ Object ก็จะมีความสัมพันธ์และเชื่อมโยงระหว่าง Object ด้วยกันเอง
ดังนั้น เราจึงจัด Object ให้เป็นกลุ่มๆ หรือ ที่เรียกว่าClass 
   class หมายถึง Object ที่มีโครงสร้างพื้นฐานพฤติกรรมเดียวกัน ดังนั้น Object ที่มีคุณสมบัติลักษณะเดียวกันนี้จะรวมกลุ่มอยู่ใน Class เดียวกัน จึงสามารถสรุปได้ว่า Class คือ ต้นแบบข้อมูลที่มีไว้เพื่อสร้าง Object นั่นเอง Class นอกจากจะมีชื่อ Class ที่บอกคุณสมบัติของ Class แล้ว ยังมี Attribute และ Operation ต่างๆ ซึ่งเป็นตัวอธิบายรายละเอียด และหน้าที่ต่างๆด้วย 










ไม่มีความคิดเห็น:

แสดงความคิดเห็น