บทความที่ได้รับความนิยม

วันศุกร์ที่ 24 มิถุนายน พ.ศ. 2554

Design pattern ใน NetBean 6.9.1

        สวัสดีค่า!  วันนี้เราจะมาพูดถึงเรื่อง design pattern กันนะค่ะ ว่ามันคืออะไรในการพัฒนาโปรแกรม และแน่นอนเราจะเขียนโปรแกรมโดยใช้ design patternใน netbeans กันด้วย
 
 อะไรกาน Design Pattern
        Design Pattern หรือแบบรูปที่มีอยู่ ที่เราดึงมาใช้ และปรับเปลี่ยนให้เข้ากับโปรแกรมของเรา   หรือการที่เมื่อเราเจอปัญหาที่มีแบบรูปเหมือนกันบ่อยๆ แล้วนำแบบรูปมาเก็บไว้เพื่อใช้ต่อไป  design pattern ที่เราจะใช้คือ Observer design pattern  ซึ่งเป็น design pattern ของ GOF หรือ Gang Of Four นั่นเอง


 อ่านะ Observer Design Pattern
        ก็เข้าใจง่ายตามชื่อค่ะ Observer design pattern  ก็คือเซตของ objects ที่เฝ้าสังเกตเหตุการณ์ใดๆ และเมื่อเหตุการณ์นั้นเกิดขึ้น  objects ที่เฝ้ามองอยู่ก็จะรับรู้  หรือ objects ที่เป็นผู้สังเกตการณ์จะได้รับการแจ้งเมื่อสถานะของสิ่งพวกมันสังเกตเปลี่ยนไป
หลายคนคงรู้แล้วละน้อ!

โหลด plugins ก่อนนะ
             netBeans 6.9.1 ไม่มี UML module ที่เราต้องใช้ ดังนั้นจึงต้องไปโหลดได้ที่ Download เลือกโหลดอันนี้   netbeans-6.9rc2-201005312001-ml-uml.zip  อันเดียวก็พอค่ะ  พอคลาย zip แล้วเพื่อนๆจะได้ folder ชื่อ uml ให้นำ folder นี้ไปวางไว้ใน folder NetBean 6.9.1 ที่เราลงไว้ (ใน program file เป็นส่วนใหญ่)  เมื่อเริ่ม netbean ใหม่ก็จะใช้ได้แล้วค่ะ


เขียนโปรแกรมโดยใช้ Design  Pattern

   1.  เลือก File ->  New Project  จะมีหน้าต่างขึ้นมาตามด้านล่าง 

 
          ที่ Categories: เลือก UML แล้วเลือกที่ Projects: เป็น Java-Platform model แล้ว click Next>
   
                หน้านี้ตั้งชื่อ Project Name: ว่า MyProject แล้ว click  Finish  เมื่อได้หน้าต่างข้างล่างแล้วเลือก class diagram ตั้งชื่อ Diagram Name: ว่า ClassDiagram1  แล้ว click  Finish 
    
 

       2.  Click  ขวาที่หน้า  classDiagram1  เลือก Apply Design Pattern…

         
              จะมีหน้าต่าง  Design Pattern Wizard  ขึ้นมา  click Next > จะมาถึงหน้าต่างด้านล่างนี้แล้ว
      
                ที่ Project: เลือก GoF Design patterns  แล้วเลือก Behavioral:Observer ที่ Design pattern:    click Next >  2 ครั้ง  เมื่อมาถึงหน้าต่างข้างล่างนี้แล้ว click ขวา ที่ ConcreteObserver แล้วเลือก create จะได้ ConcreteObserver เพิ่มมาอีกอัน จึงเปลี่ยนชื่อ ConcreteObserver เป็น Senior และ Marketing ตามลำดับ ส่วนที่ ConcreteSubject ให้เปลี่ยนชื่อเป็น HeadQuarters เสร็จแล้ว click Next >  
               เมื่อได้หน้าต่างใหม่ติ๊กถูกหน้า Create Class Diagram ตั้งชื่อ Diagram ในช่องว่างว่า ObserverDiagram      

         3.  Netbean จะสร้าง class diagram ให้เรา การเพิ่ม methods ทำได้โดย click ขวาที่ class ที่ต้องการแล้วเลือก Create Operation แล้วแก้ไขชื่อต่างๆตามต้องการ

             ให้เราเปลี่ยน attribute mState , method  getState() และ setState() เป็น mData,  getData()  และ setData()  ตามลำดับ  และเพิ่ม parameter ชื่อ sub ที่มีประเภทข้อมูล Subject ในทุกๆ method ที่ชื่อ update ดังรูปด้านล่าง
          
        4.  สร้าง New Java Project  ชื่อว่า TestObserver และตั้งชื่อ class ว่า TestObserver โดยไม่ต้องสร้าง class ใดๆ  

        5.   สั่งให้ NetBean สร้าง code โดย click ขวา ที่ชื่อโครงงาน Project  -> Generate Code… 


          เลือกโครงงานที่ให้ netbean จะเก็บ class  ต่างๆ  รวมทั้ง code ที่ได้สร้างไว้ตรงที่ Target    project: และ Source Root:   
                

                จะได้ไฟล์ของ class ต่างๆใน โครงงาน TestObserver ใน <default package > ของ Soure  package
  
        6. เปิดไฟล์ HeadQuarters.java ขึ้นมาแก้
             - เติม = new ArrayList(); เพื่อขอพื้นที่ใน attribute mObserver
             - ใน method getData เปลี่ยนจาก null เป็น mData เพื่อให้คืนค่า mData 
             - ใน method setData เติม mData = val; เพื่อเก็บค่า val ไว้ใน mData และ     notifyObserver();  เพื่อแจ้ง observers เมื่อค่า mData เปลี่ยน
              -ใน method attach เติม  mObserver.add(o) เพื่อเก็บผู้ที่มาสังเกต object นี้ 
 
       ตามนี้

            และเพิ่ม code สำหรับแจ้ง observers ทุกคนใน method notifyObserver

        7.   เพิ่มคำสั่งพิมพ์ System.out.println(“…………..”);  ใน method  update ของ class Marketing

         และ Senior 
       
       8.   สร้าง class เพื่อใช้รันอีก class ชื่อ TestObserver.java เพิ่มคำสั่ง
                      Senior obs1new Senior();
                      Marketing obs2 = new Marketing();
                      HeadQuarters headQua = new HeadQuarters();
                      headQua.attach(obs1);   //obs1 is registered to headQua
                      headQua.attach(obs2);   //obs2 is registered to headQua
                      headQua.setData("Here is the HeadQuarter!");    //headQua Data is changed
                      headQua.setData("The traffic is very heavy today");    //headQua Data is changed
       ใน method main 
      
                  พร้อมแล้วค่ะ รันโปรแกรมได้เลย! ผลลัพธ์จะแสดงที่ output ค่ะ

               เป็นอันเสร็จเรียบร้อยแล้ว  ง่ายชิมิล่ะ!+_+ อย่าลืมฝึกเขียนกันเยอะนะค่ะ เพราะว่า….

“Practice makes Perfect



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

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