您的位置:首页 > 其它

创建型-抽象工厂abstract factory

2016-01-11 21:22 363 查看


用于解决涉及到多个产品系列的问题

using System;
using System.Collections.Generic;
using System.Text;

namespace 抽象工厂模式
{
class Program
{
static void Main(string[] args)
{
User user = new User();
Department dept = new Department();

//AbstractFactory factory = new SqlServerFactory();
IFactory factory = new AccessFactory();
IUser iu = factory.CreateUser();

iu.Insert(user);
iu.GetUser(1);

IDepartment id = factory.CreateDepartment();
id.Insert(dept);
id.GetDepartment(1);

Console.Read();
}
}

class User
{
private int _id;
public int ID
{
get { return _id; }
set { _id = value; }
}

private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
}

class Department
{
private int _id;
public int ID
{
get { return _id; }
set { _id = value; }
}

private string _deptName;
public string DeptName
{
get { return _deptName; }
set { _deptName = value; }
}
}

interface IUser
{
void Insert(User user);

User GetUser(int id);
}

class SqlserverUser : IUser
{
public void Insert(User user)
{
Console.WriteLine("在Sqlserver中给User表增加一条记录");
}

public User GetUser(int id)
{
Console.WriteLine("在Sqlserver中根据ID得到User表一条记录");
return null;
}
}

class AccessUser : IUser
{
public void Insert(User user)
{
Console.WriteLine("在Access中给User表增加一条记录");
}

public User GetUser(int id)
{
Console.WriteLine("在Access中根据ID得到User表一条记录");
return null;
}
}

interface IDepartment
{
void Insert(Department department);

Department GetDepartment(int id);
}

class SqlserverDepartment : IDepartment
{
public void Insert(Department department)
{
Console.WriteLine("在Sqlserver中给Department表增加一条记录");
}

public Department GetDepartment(int id)
{
Console.WriteLine("在Sqlserver中根据ID得到Department表一条记录");
return null;
}
}

class AccessDepartment : IDepartment
{
public void Insert(Department department)
{
Console.WriteLine("在Access中给Department表增加一条记录");
}

public Department GetDepartment(int id)
{
Console.WriteLine("在Access中根据ID得到Department表一条记录");
return null;
}
}

interface IFactory
{
IUser CreateUser();

IDepartment CreateDepartment();
}

class SqlServerFactory : IFactory
{
public IUser CreateUser()
{
return new SqlserverUser();
}

public IDepartment CreateDepartment()
{
return new SqlserverDepartment();
}
}

class AccessFactory : IFactory
{
public IUser CreateUser()
{
return new AccessUser();
}

public IDepartment CreateDepartment()
{
return new AccessDepartment();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: