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.
คงทำความเข้าใจได้ไม่ยากนะครับ ลองเอาไปประยุกต์ใช้กันนะครับ
|