简单工厂模式

using System;

/***
 * 简单工厂模式
 * http://www.cnblogs.com/zhili/p/SimpleFactory.html
 * **/
namespace SimpleFactoryPatternDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            SimpleFactory factory = new SimpleFactory();
            BaseDao userDao = factory.CreateDao("user");
            BaseDao roleDao = factory.CreateDao("role");
            userDao.Open();
            roleDao.Open();
            userDao.Close();
            roleDao.Close();
            Console.Read();
        }
    }

    abstract class BaseDao
    {
        public string TableName { get; set; }
        public void Open()
        {
            Console.WriteLine("open conn, table name: " + this.TableName);
        }
        public void Close()
        {
            Console.WriteLine("close conn, table name: " + this.TableName);
        }
    }

    class UserDao : BaseDao
    {
        public UserDao()
        {
            this.TableName = "user";
        }
    }

    class RoleDao : BaseDao
    {
        public RoleDao()
        {
            this.TableName = "role";
        }
    }

    class SimpleFactory
    {
        public BaseDao CreateDao(string type)
        {
            if (type.Equals("user"))
            {
                return new UserDao();
            }
            else if (type.Equals("role"))
            {
                return new RoleDao();
            }
            return null;
        }
    }
}

 

posted @ 2013-12-20 09:05  WBFF  阅读(167)  评论(0)    收藏  举报