Basic Object-Oriented concepts
Object เปนสิ่งของที่มีคุณสมบัติ 3 ประการคือ ID (ชื่อ), attribute (ลักษณะประจํา) และ state (สถานะ)
Class เปนตัวแทนที่รวบรวมกลุมของ วัตถุที่มีคุณสมบัติคลายๆ กันเขาเปน กลุมเดียวกัน
คุณสมบัติ 2 ประการของวัตถุเปลี่ยน รูปมาจากนิยามขางตน กลาวคือ สถานะ เปนการบงบอกถึงลักษณะ ประจําของวัตถุ ณ เวลาหนึ่งๆ สวน พฤติกรรม (behavior) เกิดจากการ เรียกวิธีการ (method/operation) ที่
เปนนิยามของวัตถุในการเปลี่ยนคา (สถานะ) ของลักษณะประจํา นั่น หมายความวา วัตถุมีการเปลี่ยน คุณสมบัติตลอดเวลา (หรือมีพลวัต กับเวลา)
Source: Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston,
“Object-Oriented Analysis and Design with Application”, 3nd Edition, Addision-Wesley, M.A., 2007. 1 of 12
วัตถุมีบทบาทไดมากมาย ขึ้นอยูกับ การสราง (จากคลาส) เพื่อกระทําการ บางลักษณะตามที่ผูใชตองการ
บทบาทของวัตถุเปลี่ยนไดตามเวลา (พลวัตของวัตถุ) อยางไมจํากัด ภายในวัฏจักรชีวิตของวัตถุนั้นๆ กลาวคือ สถานะ (สถานภาพ) ของ วัตถุเปลี่ยนเมื่อเวลาและพฤติกรรม เปลี่ยน
วัตถุจะทํางานรวมกับวัตถุอื่นเพื่อ บรรลุพฤติกรรม (หรือวัตถุประสงค
ของงานบางประการ) โดยมีกลไกการ ติดตอระหวางวัตถุดวยกัน เชน ผาน ทางสาร (message) หรือเรียกใช
โดยตรง
ผูพัฒนามักจะสราง/จัดหากลไกตางๆ ที่จําเปนเพื่อใหวัตถุทํางานรวมกัน กอใหเกิดผลลัพธจากวัตถุที่มีความ ซับซอนมากขึ้น
Source: Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston,
“Object-Oriented Analysis and Design with Application”, 3nd Edition, Addision-Wesley, M.A., 2007. 3 of 12
วัตถุ (ควรจะเรียกวาคลาสมากกวา) มีกลไกที่สําคัญๆ 3 อยาง คือ Inheritance (การรับทอด), Encapsulation (การหอหุม) และ Polymorphism (ภาวะพหุสัณฐาน) รวมถึงหลักการออกแบบวัตถุที่สําคัญ ซึ่งมีความสัมพันธใกลกับการหอหุม คือ Information hiding (การซอน สารสนเทศ)
สภาวะในการทําใหเกิดผลของคลาส คือการสราง (instantiate) วัตถุจาก คลาสที่นิยามไวแลว กลาวอีกนัย หนึ่งคือ คลาสเปนแนวคิดที่เปน นามธรรม (แทนดวยเสนประ) สวน วัตถุเปนผลลัพธจากคลาสที่เปน รูปธรรม (แทนดวยเสนทึบ) ที่
เชื่อมโยงอยางสมนัยกันตามนิยาม ของคลาส (ตามเสนเชื่อม
ความสัมพันธระหวางคลาสและวัตถุ)
คลาส (class) เปนเซทของวัตถุที่มี
โครงสรางและพฤติกรรมรวมกัน พูด งายๆ คือเปนตัวแทนหรือนิยามของ วัตถุที่มีลักษณะและการทํางาน เหมือนๆ กัน
คลาสอาจแบงยอยเปนซับคลาส (subclass) ซึ่งสืบทอดคุณสมบัติจาก parent class หรือ superclass
Source: Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston,
“Object-Oriented Analysis and Design with Application”, 3nd Edition, Addision-Wesley, M.A., 2007. 5 of 12
หนาที่หลักของผูออกแบบเชิงวัตถุคือ การสรางระบบที่ซอนความซับซอน (complexity) ทั้งหมดไวในตัววัตถุ
คงมีแตสวนตอประสาน (interface) ที่ติดตอกับโลกภายนอก (ผูใช) เทานั้น พูดงายๆ คือ มองเห็นเฉพาะ สวนตอประสานเทานั้นตามหลักของ การซอนสารสนเทศและการหอหุม
แนวคิดเชิงวัตถุเบื้องตน คือ abstraction (การกําหนด
สาระสําคัญ) ซึ่งเนนลักษณะประจําที่
สําคัญของวัตถุตามมุมมองของผู
สังเกตุ
เราพอจะสังเกตุรูปแบบของการ กําหนดสาระสําคัญ โครงสราง หรือ พฤติกรรมของวัตถุได (เพื่อการ จําแนกตอไป)
การจําแนก (classification) เปน แนวทางการจัดระเบียบความรู
เกี่ยวกับวัตถุออกเปนกลุมๆ
Source: Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston,
“Object-Oriented Analysis and Design with Application”, 3nd Edition, Addision-Wesley, M.A., 2007. 7 of 12
ขอสังเกตุของการจําแนก คือ ผูสังเกตุ
การณแตละคนจะจําแนกวัตถุ
ออกเปนหมวดหมูตางกัน (ขึ้นอยูกับ มุมมองของแตละคน)
ซึ่งการจําแนกคลาสและวัตถุนั้นตอง ไมกําหนดสาระสําคัญสูงหรือต่ํา (มากหรือนอย) เกินไป ทําใหจําแนก ไดยากและอาจจะละเอียดจนเกินไป (ยากตอการทําใหเกิดผล)
แนวทางการกําหนดสาระสําคัญที่ดี
คือทําเปนลําดับชั้น โดยเริ่มจาก สาระสําคัญหลักกอน (ภาพรวม) แลว คอยๆ พิจารณาแยกแยะสาระสําคัญ ของแตละสวนยอยลงไปเรื่อยๆ ตามลําดับ ทํานองเดียวกับการรอน ทรายที่เริ่มจากรอนกรวดกอนโตกอน ดวยตะแกรงตาหาง แลวคอยๆ เพิ่ม ความถี่ของตะแกรงขึ้นเรื่อยๆ จนได
ทรายละเอียดในที่สุด
การกําหนดชนิดของวัตถุที่ชัดเจน ปองกันไมใหเกิดความสับสนในการ กําหนดสาระสําคัญ
Source: Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston,
“Object-Oriented Analysis and Design with Application”, 3nd Edition, Addision-Wesley, M.A., 2007. 9 of 12
การสรางโมดูลเปนการรวม สาระสําคัญเขาเปนสวนชัด (discrete) ที่สามารถเรียกใชหรือ นําไปประกอบเปนสวนโปรแกรม (component) ในภายหลังไดงาย
การหอหุมซอนรายละเอียดของการ ทําใหเกิดผลของวัตถุ เปนการรวม (หอ) สวนประกอบยอยๆ เขาดวยกัน เพื่อใหมองเปนสวนชัดเดียวกัน ตาง จากการซอนสารสนเทศตรงที่ผลลัพธ
จากแนวคิดแรกอาจจะเปนระบบ (หนวยยอย) สําเร็จรูปที่ทํางานเปน อิสระในตัวเอง ไมตองมีการเปดสวน ตอประสานใหโปรแกรมอื่นเรียกใช
แตแนวคิดหลังตองเปดชองทางให
ผูใชหรือโปรแกรมติดตอผานทางสวน ตอประสานเพื่อเรียกใชงานหรือตอ ยอดตอไป
คุณสมบัติ persistence เปนการเก็บ รักษาสถานะและคลาสซึ่งเปนนิยาม ของวัตถุหนึ่งๆ อยางถาวร กลาวคือมี
ที่เก็บ (space) และมีผลใชไดนาน (time) เพราะวัตถุทุกชนิด (ภายใต
การกระทําการเชิงวัตถุ) จะถูกลบทิ้ง หลังจากสิ้นสุดการใชงาน
Concurrency (ภาวะพรอมกัน) เปน การยอมใหวัตถุตางๆ ทํางานในเวลา เดียวกัน ดังเชนแมวในรูปที่สามารถ จับหนู รองเหมียว กระดิกหาง ฯลฯ ไดพรอมๆ กัน
Source: Grady Booch, Robert A. Maksimchuk, Michael W. Engle, Bobbi J. Young, Jim Conallen, and Kelli A. Houston,
“Object-Oriented Analysis and Design with Application”, 3nd Edition, Addision-Wesley, M.A., 2007. 11 of 12
การประยุกตใชงานเชิงวัตถุเปนการ นําแนวคิดเชิงวัตถุมาทําใหเกิดผล เพื่อตอยอดเปนงานประยุกต
(application) ใหมๆ ดวยหลักการนํา กลับมาใชใหม (reuse) ในรูปของ สวนโปรแกรม ระบบงานที่สนับสนุน แนวคิดดังกลาวในเชิงพาณิชยที่
สําคัญอันหนึ่งคือ CORBA (ดู
รายละเอียดเพิ่มเติมไดจาก www.corba.org และที่ Object Management Group—OMG www.omg.org)