ZengCode.Com (The Thai Php Framework)  


Home   Download   Manual   About us    

Facebook   


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

ยอดเยี่ยมครับ


Name
Comment
Security CodeCAPTCHA Image

web hit counter

This page took 0.052330 seconds to load.