MAIN MENU
News Php Tips Spring+Strut+Hibernate Android Programming Design Pattern By PHP Ubuntu Linux Quick Tips C# Design Pattern C# using Linq น่าใช้จริงๆ C# Tips & Technique Java & JavaScript Tips Database & SQL ZengCode Framework Guide Zeng Code Code Programming IPhone (Tips and Trick)
Download เอกสารที่น่าสนใจ




|
ประโยชน์ของ Polymophism ประยุกต์ใช้กับ Factory Pattern โอ๊ย เยี่ยม (2009-11-04)
ลองเอาไปประยุกต์ดูนะครับ ว่าจะใช้ในงานอะไรได้บ้าง เท่าที่ผมเคยใช้ผมใช้ ในการสร้าง class ของ Database ต่างๆ อ่ะครับ
เช่น MSSQLDB Class และ OracleDB Class ซึ่งมีการทำงานทำงานและคำสั่งในการทำงานที่ต่างกัน เราก็ทำ Class แม่ขึ้นมา
อันนึง แล้วก็ให้สองคลาสนี้ override ซะ ทีนี้จะมี class ติดต่อ database อีกกี่สิบกี่ร้อยชนิดก็สบายบรือ แต่รู้สึกว่า คลาสแม่จะเป็น
Interface ไม่ได้มั้งนะ เพราะว่า Interface ไม่ยอมให้สร้าง instant หรือว่า เดี๋ยวไว้ลองดู ใครได้คำตอบยังไงก็โพสบอกกันบ้างนะครับ
อ่ะ มีน้องถามว่า แล้ว return type ละถ้าแต่ละตัวไม่เหมือนกัน เราก็ทำให้มันเหมือนกันซิ่ครับ อาจจะไปถ่ายใน Collection ต่างๆ เช่น
ArrayList, HashTable ก็ได้ ประยุกต์กันไปแล้วแต่ความเหมาะสมเนอะ
using System;
using System.Collections.Generic;
using System.Data.DLinq;
using System.Data.DLinq.Mapping;
using System.Text;
namespace TestLinq
{
abstract class Animal
{
public String name="I am animal";
public virtual String Say()
{
return "I am animal";
}
}
class Dog:Animal
{
public override String Say()
{
name = " MahMah";
return "I am dog => "+name;
}
}
class Cat:Animal
{
public override String Say()
{
name = " MaewMaew";
return "I am cat => "+name;
}
}
class Factory
{
public Animal getAnimal(String animal)
{
if (animal == "dog")
return new Dog();
if (animal == "cat")
return new Cat();
return null;
}
}
class Program
{
public static void Main()
{
Factory AnimalFactiory = new Factory();
Animal myPet = AnimalFactiory.getAnimal("cat");
Console.WriteLine(myPet.Say());
Console.ReadLine();
}
}
} |
|
Comment
นักเรียนนักเลง (22 ธันวาคม 2552)
IP : 203.154.112.163
|
|
รู้ว่าสุดยอด pattern แต่ไม่ค่อยเข้าใจอ่ะ
|
ยอดมนุษย์ที่สุดในจักรวาล (04 พฤศจิกายน 2552)
IP : 210.4.138.41
|
|
ยอดเยี่ยมครับ
|
|
|