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

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

Design pattern ใน Eclipse

การใช้ Design pattern ใน Eclipse นั้นเป็นการใช้งานโดยที่ต้องมีการดาวโหลด plug in นำมาใส่เพื่มในโปรแกรมเพื่อทำการ เรื่มต้นใช้ Design pattern ครับ


เราสามารภดาวโหลดได้ที่นี้ครับ
http://www.patternbox.com/eclipse.html




เมื่อดาวโหลดมาเรียบร้อยแล้วก็ให้ทำการมาติดตั้งโดยการนำมาไฟล์ .zip ที่โหลดมา
นำมาใส่ใน folder ขอ Eclipse/plug in



หลังจากที่ได้ทำการติดตั้ง Plugin เรียบร้อยแล้ว เราจะมาสาธิตวิธีใช้งาน Design Pattern
บน Eclipse  อย่างง่ายๆกัน


โดยเริ่มจากทำการสร้าง Java Project โดยไปที่ File > New > Java Project จะปรากฏดังรูป
          

        ทำการตั้งชื่อ Project ที่ช่อง Project Name โดยในที่นี้ตั้งชื่อว่า Test จากนั้นคลิกที่ปุ่ม Finish   

เมื่อทำการสร้าง Project เรียบร้อยแล้ว ไปที่ File > New > Orther… > Java > Design Patter Wizard ดังรูป
        เมื่อกด Next > แล้ว จะปรากฏรูปดังนี้


ที่ Container: ให้ทำการกด Browse… เพื่อเลือก Project ที่เราได้ทำการสร้างขึ้นในขั้นตอนที่1 ในที่นี้มีชื่อว่า  Test จากนั้นคลิกที่ปุ่ม OK


ในตัวอย่างนี้เราจะใช้  Pattern Behavioral โดยให้เลือกที่
 GoF->Behavioral Pattern->Observer เสร็จแล้วกด Finish

จะปรากฏรูปดังนี้


หลังจากนั้นให้เลือก Observer แล้วกดปุ่ม Add… จะปรากฏหน้าต่างขึ้นมาเพื่อให้เรา
ตั้งชื่อ Class

เสร็จแล้วกด Finish ตัว Eclipse จะทำการสร้าง Class และ Generate Code ให้กับเราดังภาพ


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



วันเสาร์ที่ 18 มิถุนายน พ.ศ. 2554

มารู้จักกับ Factory Method และตัวอย่าง class java ที่ใช้ Factory Method


Factory Method คือ อะไร
    เป็นดีไซน์แพตเทิร์น อีกแบบนึงที่ใช้สร้างอ็อบเจกต์ของคลาสชนิดหนึ่งๆ  Factory Method ในความหมายโดยทั่วไปคือเมธอดที่ทำหน้าที่สร้างอ็อบเจกต์ โดยที่ไม่ใช้ constructor นั่นเอง


หากยังนึกไม่ออก

การสร้าง object แบบปกติ 
ก็ให้นึกถึงการสร้าง object โดยที่ไม่ได้ new ดูสิครับจากปกติในการสร้าง object จาก class ที่ต้องการนั้นจะมีรูปแบบการเขียนตัวอย่างคือ

                       ชื่อclass     ชื่อobject    =     new    ชื่อclass () ;
      เช่น           Student     objstu         =     new     Student();

การสร้าง object แบบใช้ Factory Method
เอะจากข้างบนมันก็การสร้าง object ปกตินินา แล้วถ้าเป็น Factory Method มันจะสร้างobject ยังไงของมันละ เราลองมาดูตัวอย่าง

                       Student objstu  = Cre.creFactory("red");

จากตัวอย่างข้างต้นจะเห็นได้ว่าเป็นการสร้าง object โดยไม่มีการ new แต่เป็นการเรียกmethod
ตัวหนึ่งแทนและมีการส่งค่าในการเลือกประเภทของการสร้าง ในที่นี้ส่งเป็น String คำว่า red เข้าไป
                      

เรามาดู Class ของ java  ที่ใช้ Factory Method  ในการสร้างObject

1. Class SAXParserFactory

java.lang.Object

extended byjavax.xml.parsers.SAXParserFactory  
     Defines a factory API that enables applications to configure and obtain a SAX based parser to parse XML documents.


2. Class ColorChooserComponentFactory
java.lang.Object
  extended byjavax.swing.colorchooser.ColorChooserComponentFactory
     A class designed to produce preconfigured "accessory" objects to insert into color choosers.

3. Class JFormattedTextField.AbstractFormatterFactory
java.lang.Object
  extended byjavax.swing.JFormattedTextField.AbstractFormatterFactory
     Instances of AbstractFormatterFactory are used by JFormattedTextField to obtain instances of AbstractFormatter which in turn are used to format values.
 



4. Class SAXTransformerFactory
java.lang.Object
  extended byjavax.xml.transform.TransformerFactory
      extended byjavax.xml.transform.sax.SAXTransformerFactory
     This class extends TransformerFactory to provide SAX-specific factory methods. It provides two types of ContentHandlers, one for creating Transformers, the other for creating Templates objects.
 
5.  Class Calendar
        Calendar rightNow = Calendar.getInstance();
 


ตัวอย่างของ Factory Method

interface Vehicle {
  public String move();
}
 
public Car extends Vehicle {
  public String move() {
    System.out.println("run on the road."); 
  }
}
 
public Aircraft extends Vehicle {
  public String move() {
    System.out.println("fly in the sky.");
  }
}
 
public VehicleFactory() {
  // duration คือเวลาที่ใช้ในการเดินทางเป็น ชม.
  public static Vehicle createVehicle(int duration) {
    if (duration > 15)
      return new Car();
    else
      return new Aircraft();
  }
}
     จาก code ด้านบนจะเห็นว่า หาคลาสใดต้องการเอายานพาหนะไปใช้สามารถที่จะสร้างยานพาหนะตรงๆ ก็ได้ แต่ก็ต้องเอาข้อกำหนดเรื่องเวลากระจายไปตามคลาสต่างๆ เหล่านั้นด้วย หาก มีการเพิ่มยานพาหนะอีกอย่างขึ้นมา ก็ต้องไปแก้โค้ดในคลาสต่างๆ ที่ใช้ยานพาหนะทั้งหมด หากรวมโค้ดเหล่านั้นไว้ที่จุดเดียวคือ คลาสที่ใช้ในการสร้าง เวลาแก้ไขก็สามารถแก้ไขจุดเดียวได้คือที่ Factory ไม่จำเป็นที่จะต้องแก้ไขตามคลาสต่างๆ อีกต่อไป ทีนี้ก็ลองใช้กันดูน่ะค่ะ
reference : http://download.oracle.com/javase/1.4.2/docs/api/overview-summary.html

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

เริ่มต้นใช้งาน Eclipse


เริ่มต้นใช้งาน Eclipse
 
 
Eclipse เป็นโปรแกรมที่ช่วยในการเขียนและรันโปรแกรม จุดเด่นของมันคือสามารถเดาโค้ดที่ใกล้เคียงมาให้ และที่สำคัญคือมันฟรี!! เริ่มต้นโดนการดับเบิลคลิกที่ icon โปรแกรมแล้วรอมันโหลด

เมื่อเปิดโปรแกรมขึ้นมาแล้ว อย่างแรกในการที่จะทำงานคือให้ไปที่ file->New->java Project เพื่อเรื่มการทำprojectใหม่ ในที่นี้จะเห็นได้ว่ามีการรันprojectได้หลายรูปแบบแต่ในตัวอย่างนี้จะทำการเลือกที่ java project

เมื่อเลือกที่ java project แล้วก็ให้ทำการใส่ชื่อของ project ส่วนที่เหลื่อนั้นผู้ใช้สามารถเลือกให้เป็น default ได้โดยโปรแกรมจะทำการกำหนดที่ตั้งไฟล์ของ project เวอร์ชั้นของ JRE ให้ แล้วก็กดปุ่ม finish

เมื่อกดปุ่ม finish โปรแกรมก็จะทำการสร้าง project ขึ้นมาให้สังเกตที่ด้านซ้ายมือ จะมีไพล์ที่พร้อมแล้วแต่ยังไม่มี class

ทำการกดไปที่ new->Class เพื่อทำการเพิ่ม class ของ java ในการเขียนโปรแกรม

เมื่อกดเข้ามา จะมีการให้ใส่ Package ในที่นี้ไม่ได้ใส่และใส่ชื่อของ Class เลือกลักษณ์ของclass และการกำหนดให้โปรแกรมนั้นสร้าง method main โดยให้เลือกไปที่ public static void main(String[] args)เมื่อเลือกแล้วก็ให้ทำการ Finish


ก็จะได้class Hello มาโดยที่ มีการสร้าง method main รองรับไว้ให้แล้ว ผู้ใช้ก็สามารถเขียนโปรแกรมแทรกเข้าไปได้เลย
เมื่อเขียนโค้ดไปโปรแกรมก็จะทำการเดาโค้ดที่ใกล้เคียงขึ้นมาทำให้ผู้ใช้ไม่จำเป็นต้องเขียนโค้ดเองทั้งหมดเพิ่มความสะดวกในการเขียนโปรแกรมได้เมื่อมีการเขียนโค้ดผิดก็จะมีการฟ้องในทันที่ไม่ต้องรอให้runแล้วจึงบอก และยังสามารถทราบได้อีกว่าโค้ดในลักษณ์นี้มี method อะไรให้เลือกใช้อีก เมื่อต้องการก็ให้กด Enter



ทำการใส่ string เข้าไปใน method System.out.print(); แล้วทำการรันโดย กดที่รูปเครื่องหมายplay สีเขียว ข้างๆรูปแมลง เมื่อเขียนโค้ดไม่ผิดก็จะได้ out put ดังรูปเป็นอันจบการใช้ Eclipse ครับ ^ ^

                บทความนี้แสดงให้เห็นถึงfunction การทำการพื้นฐานของโปรแกรมเท่านั้น โปรแกรมนี้ยังมีลูกเล่นอะไรอีกมากและยังสามารถโหลด plugin เสริมได้อีกมากมาย ในตัวผู้เขียนนั้นก็ใช้กับ android อยู่จากการที่มี plugin มากนี้บวกกับเป็นโปรแกรมฟรี โปรแกรมนี้จึงเป็นเครื่องมือสำคัญของโปรแกรมเมอร์จำนวนมาก