ZengCode.Com (The Thai Php Framework)  


Home   Download   Manual   About us    

Facebook   


MAIN MENU
News
Php Tips
Android Programming
Design Pattern By PHP
C# using Linq น่าใช้จริงๆ
C# Tips & Technique
C# Design Pattern
Linux Quick Tips
Java & JavaScript Tips
Database & SQL
ZengCode Framework Guide
Zeng Code Code
Programming
IPhone (Tips and Trick)

Download เอกสารที่น่าสนใจ

     Strategy Pattern   (2010-03-15)

Strategy Pattern เป็น design pattern ที่เอาไว้ใช้ตอนที่เราต้องเลือกทำสิ่งหนึ่ง แต่วิธีการหลากหลายออกไป เช่น นักเรียนแต่ละคนไปโรงเรียนได้หลายอย่าง
เช่นนักเรียนบางคนไปโดยรถยนต์ บางคนไปโดยรถมอเตอร์ไซด์ Pattern ตัวนี้ต้องการ interface ตัวหนึ่งในการเลือกว่านักเรียนจะไปโรงเรียนด้วยวิธีใด
ในที่นี้เราใช้ interface ที่ชื่อว่า IGo

 class Student
    {
        private String myName;
        private IGo goToSchoolBy;
        public Student(String myName)
        {
            this.myName = myName;
        }

        public String GoToSchoolBy(IGo igo)
        {
            goToSchoolBy = igo;
            return "I am "+this.myName+", "+goToSchoolBy.Go();
        }
    }

    interface IGo
    {
         String Go();
    }

    class goCar : IGo
    {
        public String Go()
        {
            return "I go to school by car";
        }
    }

    class goMotorcycle : IGo
    {
        public String Go()
        {
            return "I go to school by motorcycle";
        }
    }

 วิธีการเรียกใช้งาน

           Student st1 = new Student("Chiwa");
            MessageBox.Show(st1.GoToSchoolBy(new goCar()));
            Student st2 = new Student("NuBee");
            MessageBox.Show(st2.GoToSchoolBy(new goMotorcycle()));

ซึ่ง Message ที่แสดงจะเป็นดังนี้ คือ

- I am Chiwa, I go to school by car.

และ

-I am NuBee, I go to school by motorcycle.

คงทำความเข้าใจได้ไม่ยากนะครับ ลองเอาไปประยุกต์ใช้กันนะครับ

 


Comment

ZengCode  (10 พฤษภาคม 2553)   
IP : 203.154.112.163

เป็น pattern ที่น่าใช้มากๆ อีกตัวนึงนะครับ


Name
Comment
Security CodeCAPTCHA Image

easy tracking
avis car rental discount code

This page took 0.035797 seconds to load.