สวัสดีค่า! วันนี้เราจะมาพูดถึงเรื่อง 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…
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 นี้
ตามนี้
- เติม = 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 obs1 = new 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”
ไม่มีความคิดเห็น:
แสดงความคิดเห็น