Group Blog
 
 
พฤษภาคม 2552
 
 12
3456789
10111213141516
17181920212223
24252627282930
31 
 
22 พฤษภาคม 2552
 
All Blogs
 

Object Patterns - Creational Patterns - Factory

   Factory Pattern เป็น Pattern ที่ใช้ในการสร้าง Instance จาก Factory โดย Factory มีหน้าที่ตัดสินใจว่าเราจะต้องการ Instance ของ Class อะไร เราไม่ต้องใช้ if Statement มากและเรายังสามารถเติม Class ที่เราจะสร้างได้เรื่อยๆ เราสามารถสร้างให้ Factory เป็น Static หรือไม่ก็ได

   Factory Pattern นั้นประกอบด้วย 2 ส่วนด้วยกันคือ Factory และ Product โดย Factory นั้นจะเป็นตัวที่สร้างและตัดสินใจในการสร้าง Class ที่เราเรียกว่า Product และ Product จะเป็น Class ที่เก็บข้อมูล และ Method ต่่างๆโดย Product จะเป็น Abstract Class เป็นส่วนมาก

 

UML Factroy Pattern

ตัวอย่างการเขียน Code Factory
public class Factory
{
 private Dictionary<Type,Product> _loadedProducts = new Dictionary<Type,Product>();
 private List<Type> _listProducts = new List<Type>();
 
 public Product CreateProduct(Type typeofProduct)
 {
  if(!_loadedProducts.ContainsKey(typeofProduct))
   Load();
  return_loadedProducts[typeofProduct];
 }
 
 public void RegisterProduct(Type typeofProduct)
 {
  if(typeofProduct.IsSubclassOf(typeof(Product)))
   _listProducts.Add(typeofProduct);
 }
 
 private void Load()
 {
  foreach(Type type in _listProducts)
  {
   ConstructorInfo info = type.GetConstructor(newType[]{});
   if(!_loadedProducts.ContainsKey(type))
    _loadedProducts.Add(type,(Product)info.Invoke(newobject[]{}));
  }
}

 

ตัวอย่างการเขียน Code Product
public abstract class Product
{
 publicProduct()
 {
 }
}

 




 

Create Date : 22 พฤษภาคม 2552
1 comments
Last Update : 22 พฤษภาคม 2552 23:25:33 น.
Counter : 469 Pageviews.

 

สวัสดีค่ะ มาแจ้งข่าวทุนเรียนอังกฤษอีกแล้ว ประกาศผลแล้วนะจ๊ะ ติดตามได้ที่บล๊อกเหมือนเคยจ้า

 

โดย: mookyja 31 สิงหาคม 2552 7:40:59 น.  

ชื่อ :
Comment :
  *ใช้ code html ตกแต่งข้อความได้เฉพาะสมาชิก
 
รหัสส่งข้อความ
กรุณายืนยันรหัสส่งข้อความ


ParmanBabra
Location :


[ดู Profile ทั้งหมด]

ให้ทิปเจ้าของ Blog [?]
ฝากข้อความหลังไมค์
Rss Feed

ผู้ติดตามบล็อก : 1 คน [?]




Friends' blogs
[Add ParmanBabra's blog to your web]
Links
 

 Pantip.com | PantipMarket.com | Pantown.com | © 2004 BlogGang.com allrights reserved.