__________________________ _Object-Oriented Software Development_ - PowerPoint

Document Sample
__________________________ _Object-Oriented Software Development_ - PowerPoint Powered By Docstoc
					  แนวคิดเชิงวัต ถุ
(OO Concept)
              ่ ่         ่       ่
 Object คือสิงทีเราสนใจทีปรากฏอยูภายในระบบ
       ่ ่
    สิงทีเป็ นเชิงกายภาพ หรือเชิงความคิด (Physical or Conceptual)
                         ่
         รูปธรรม เป็ นสิงของสามารถจับต้องได้ เช่น คน สัตว์ รถ ใบเสร็จของ 7 eleven
                                                                   ่       ่
         นามธรรม ไม่สามารถสัมผัสหรือจับต้องได้ เช่น ระบบบัญชี เทียวรถ เทียวบิน ข้อมูล
    คุณสมบัติ 3 ประการ
        Identity (ชื่อ)
        Attribute (คุณลักษณะ)
        State (สถานะ)
          ิ                                           ่
 คุณสมบัตของวัตถุ (identity and attribute)จะมีการเปลียนแปลงไปตาม
  สถานะ (state)
                                                           ่
    พฤติกรรม (Behavior) จะเป็ นตัวขับเคลื่อนให้เกิดสถานะทีต่างๆ กัน
        ี
    วิธการ (Method) จะถูกเรียกใช้โดยพฤติกรรม

                    1. โทรออก 2. ถ่ายภาพ



                     1. สนทนา 2. ดูภาพถ่าย
              ่           ่             ่
 สถานะเป็ นเงือนไขหรือกลุมของพฤติกรรมทีแสดงให้เห็นเป็ นวัตถุ
                                          ั ั                  ่
    บัญชีเงินของธนาคาร มีสถานะของยอดเงินปจจุบน โดยมี method ทีทาให้สถานะ
                   ั ั ่
     ของยอดเงินปจจุบนเปลียนคือ deposit และ withdraw
    สถานะของหลอดไฟฟ้ามี on และ off
    สถานะของนักศึกษาคือนักศึกษาคณะวิทยาศาสตร์ มี attribute คือ รหัส ชื่อ-สกุล
                        ่                             ่
     สาขาวิชา เกรดเฉลีย มี behavior คือเรียนหนังสือ ซึงจะเรียกใช้ method เข้า
                                             ิ           ่               ่
     เรียน อ่านหนังสือ และสอบ จะทาให้คุณสมบัตบางอย่างเปลียน เช่น เกรดเฉลีย
                                 ่
 Object จะทางานร่วมกับ Object เพือให้บรรลุพฤติกรรม
                                             ่
    กลไกการติดต่อกันโดยการรับ-ส่ง Message เพือให้เรียกใช้ Method
                         ่                                     ่
 Object Data เป็ นส่วนทีจะแสดงให้เห็นถึงคุณลักษณะของ object ซึง
                                                           ้
  object จะมี data เป็ นของตัวเองและใช้งานได้เฉพาะตัวเท่านัน

                                                        ่
    Student : [ชัยนันท์] มี Data คือ รหัส : 403005-9, ชือ-สกุล : ชัยนันท์
     สมพงษ์, ภาควิชา : คณิตศาสตร์, คณะ : วิทยาศาสตร์, GPA : 2.00, …
                                   ่
    Dog : [Sam] มี Dataคือ ชือ : Sam, สี : ดา, พันธุ์ : ไทย …
    Car มี Data คือ Color : red, CC : 5,800, HP : 650 , Gear : AT


                   ่
 Data มีความหมายทีใกล้เคียงกับ Attribute
                                               ่         ่
 Object Behavior เป็ นการพฤติกรรมของ object ทีสามารถเปลียนสถานะ
                                       ้    ั้
  ได้โดยการกระทาของ method สามารถเกิดขึนได้ทงจากภายนอกหรอภายในตัว
  object

   Student มีความสามารถ (method) ลงทะเบียนเรียน อ่านหนังสือ ทาการบ้าน...
   Car มี method เร่งความเร็ว เบรก บรรทุก...
                                  ่
   Receipt (ใบเสร็จ) มี method เชือมต่อข้อมูลการขาย คานวณเงินทอน พิมพ์...


 ในบางความหมาย Behavior และ Method อาจมีความหมายเดียวกัน
 Object – Oriented
                         ่                 ้                         ่ ้ ่
   คือการกระทาบางอย่างทีใช้ object เป็ นพืนฐานในการพิจารณาความจริงทีเกิดขึนทีอยู่
                 ่
    ภายใต้กรอบทีสนใจ
   นาแนวความคิด (concept) สร้างให้เห็นเป็ นรูปธรรมโดยใช้แบบจาลอง (model)
               ่                                  ่     ้    ่     ้
   Model ทีสามารถอธิบายการกระทาของ object ทีสนใจตังแต่เริมต้นจนสินสุด
   การรับส่ง message ระหว่าง object
 OO Concept ของ Student
   Student ต้องเรียนปกติภายในมหาวิทยาลัย
   Student สังกัดสาขา คณะ และลงทะเบียนเรียนตามหลักสูตร
                            ่
   Student ต้องเรียน สอบ เพือวัดผลการเรียน
   Student มี GPA เป็ นตัวตัดสินว่าจะสาเร็จการศึกษาหรือไม่ หรือมีสถานะ ตกออก
                      Object 2
 Object – Oriented

                      Attribute

                      Method

      Attribute

       Method

                       Attribute
      Object 1
                        Method

                          Object 3
 Abstraction คือการให้ความคิดรวบยอด (concept) กับ object ภายใต้
        ่
  กรอบทีสนใจ
                ่          ่    ั
 การนาความคิดทีได้มาจัดกลุมให้กบ object จะเรียกว่า abstract object
 Class คือการรวมแนวความคิดของ object ให้เป็ นนามธรรม
              ิ
    เป็ นแม่พมพ์ของ object
    เป็ นต้นแบบของ object
 Class จะเป็ นนามธรรมไม่สามารถดาเนินกิจกรรมหรือใช้งานได้
    จะต้องทาการสร้าง object จาก class ด้วยการ Instantiation
                                ่ ีุ    ิ                  ่    ่
 Class เป็ นตัวแทนของ object ทีมคณสมบัตคล้ายๆ กันจัดให้อยูในกลุมเดียวกัน
                            ่ ีั
    เป็ นนิยามของ object ทีมลกษณะคล้ายๆกัน
                       ่ ้                         ้ ่ ั          ่
    บทบาทของ object ทีเกิดขึนอาจมีได้หลายหลากโดยขึนอยูกบ class ทีสร้าง
                      ้                                            ั
    แนวคิดเชิงวัตถุเบืองต้นคือการกาหนดสาระสาคัญ (abstraction) ให้กบ class
                   ้
     ตามมุมมองของผูใช้
                         Class : Registration Form
                                  (ใบลงทะเบียน)

                               Instance
 Object : Registration Form                          Object : Registration Form
           (นาย ก.)                                            (นางสาว ค.)

                         Object : Registration Form
                                    (นาย ข.)
  ตัวอย่าง Class

Class name        Student                        Student
             StudentIDNumber                403005-9
             FirstName                      Chaiyanan
Attribute    LastName            Instance   Sompong
             Address                        null
             Department                     Mathematic
             Faculty                        Science
             RegisterForCourse              RegisterForCourse
 Method      DropCourse                     DropCourse
             ChangeAddress                  ChangeAddress
        ่
 กลไกทีสาคัญของ Class
                            ้
    Encapsulation (การห่อหุม)
    Inheritance (การถ่ายทอด)
                           ั
    Polymorphism (ภาวะพหุสณฐาน)
 การสร้างวัตถุจากคลาส (Instantiate)
    Class เป็ นแนวคิดนามธรรม
                          ่
    Object เป็ นรูปธรรมทีเกิดจากนามธรรม
                                       ่ ี ้
    การ instance คือการสร้าง object ทีมตนแบบมาจาก class
          ้       ้
 การห่อหุมเป็ นพืนฐานสาคัญอย่างหนึ่งของ Object-Oriented
                                     ่     ั      ้
    เปรียบ class เป็ นเหมือนแคปซูลทีบรรจุตวยาไว้ขางใน
    ป้องกันการกระทาใดๆ จากภายนอกทีจะทาให้ data หรือ method ภายใน
                                   ่
     object เสียหาย
    Information Hiding
                           ้                              ้
 Encapsulation คือการห่อหุม attribute และ method เข้าไว้ดวยกัน
             ่                          ั ื
    สามารถทีจะอนุ ญาตหรือไม่อนุ ญาตให้วตถุอ่นๆ เข้ามาใช้งาน attribute หรือ
                         ั้
     method ของวัตถุนนๆ ได้
                                                              ้
    การเข้าถึง data ของ object การทาได้โดย method พิเศษเท่านัน
                      Class A

                          Public Method_1
                          Public Method_2
Private attribute_1       Private Method_3
Private attribute_2       Private Method_4
Private attribute_3       Public Method_5
Private attribute_4       Private Method_6
                          Public Attribute_4
                 ้
 การกาหนดลาดับขันของ object
  เนื่องจาก object อาจมีความ
  ซับซ้อนมาก
                      ่
 การออกแบบ class อยูในรูปของ
  Superclass และ Subclass
    กาหนด class A เป็ น
     Superclass จะได้ class B ที่
     มีคุณสมบัติ (Attribute หรือ
                   ้
     Method) ทังหมดหรือบางส่วน
     ถ่ายทอดจาก A จะได้ B เป็ น
     subclass
      Animal


Cat            Rat
       Dog
                     Vehicle


        Car                          Motorcycle
                     Truck

Sedan    Compact
               4x4           wagon
                   ี
 ในพฤติกรรมหรือวิธการเดียวกัน (Behavior or Method) สามารถทาให้
                  ่ ่
  object มีสถานะทีเปลียนไปต่างกัน
 จาก class Animal มีพฤติกรรมการ “ส่งเสียงร้อง”
                      ั
    Class Cat ได้รบการถ่ายทอดพฤติกรรม “ส่งเสียงร้อง”
                           ่ ื
       สถานะของเสียงร้องทีได้คอ “Maow”
                        ั
    Class Dog ได้รบการถ่ายทอดพฤติกรรม “ส่งเสียงร้อง”
                           ่ ื
       สถานะของเสียงร้องทีได้คอ “Bow”
             ่ ่                                                       ่
    เห็นได้วาทีพฤติกรรมเดียวกันแต่ถูกถ่ายทอดจาก class Animal จะให้ผลทีต่างกัน
                   Shape
                protected X
                protected Y
                public Draw()




    Cycle         Rectangle       Triangle
private R       private X2
public Draw()   private Y2      public Draw()
                public Draw()
                                              ้
 กระบวนการในการให้ concept กับ object มี 4 ขันตอนคือ
   Classification Abstraction
   Aggregation Abstraction
   Generalization Abstraction
   Association Abstraction
                           ่ ่            ่
 การแยกประเภทของ object ทีอยูภายใต้กรอบทีสนใจ
                   ่ ้ ้          ่ ่
 พิจารณาจากคานามทีเกิดขึนทังหมดทีอยูภายใต้ Requirement
                    ่
 คัดเลือกคานามทีคาดว่าจะเป็ น object เช่น
    ลูกค้า สินค้า ใบเสร็จ พนักงานขาย โฆษณา เป็ นต้น
         ้     ่                        ่
 เป็ นขันตอนทีสาคัญเนื่องจากเป็ นจุดเริมต้นของการสร้าง Class
 หลังจากการกาหนดและแยก class แล้วจะทาการพิจารณาจัดกลุ่มของ class
              ่ ่
 รวม class ทีอยูกลุ่มเดียวกันเข้าเป็ น class ใหญ่

       Accelerator                                     Gear

                                 Car

              Wheel                                  Door
                    ิ
 การพิจารณาคุณสมบัตการสืบทอดของ class
 Generalization
                                     ่ ี    ิ                      ่
   การรวมตัวกันของหลาย class ทีมคุณสมบัตเดียวกันแล้วสร้าง class ทีใหญ่กว่าให้ให้
    เป็ น Superclass
                         ้         ้
   โครงสร้างเป็ นลาดับชันจากล่างขึนบน (Bottom-Up)
   เป็ นการหา superclass จาก subclass
 Specialization
                                  ่                               ี
    ในบางกรณีอาจพบว่า class ทีสนใจสามารถแยกเป็ น class ย่อยไปได้อก
                    ิ
    อาศัยคุณสมบัตการถ่ายทอดจาก superclass ไปยัง subclass
                          ้
    โครงสร้างเป็ นลาดับชันจากบนลงล่าง (Up-Bottom)
 การหาความสัมพันธ์ระหว่าง class
 โดยการพิจารณาจาก Behavior และ Responsibilities
                     ่                      ่
 Class ทุก class อยูในลักษณะเรียกใช้ หรือพึงพากัน
      ี
 ไม่มความสัมพันธ์แบบเป็ นส่วนประกอบ (Composition) หรือ
  ความสัมพันธ์หรือการรวมกลุ่ม (Aggregation)
      ี
 ไม่มความสัมพันธ์แบบจัดหมวดหมู่ (Generalization)

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:12
posted:11/15/2011
language:Thai
pages:25