.NET 设计模式初探
2005-06-12 19:30
225 查看
工厂模式——设计模式初探
最近,正在抓紧时间看.NET的视频,期末考试结束了,整个人也散了,找不到什么正经的事情干,没事就在实验室泡着,学习一下各方各面的知识,拓展一下思路和知识,感觉不错,呵呵。
下面是在听WebCast的设计模式的视频时,实现的例子,比较简单,具体对模式的理解和应用还很需要深入……
using System;
namespace CSDesignPattern
{
public enum UserType{Employee=0, Sales=1, Guest=2};//声明一个枚举,三种类型的用户
public class User
{
protected string level = "Z"; //权限级别
public string GetLevel() //得到该用户权限,默认为Z
{
return level;
}
}
public class Employee : User //继承,重新设定级别
{
public Employee()
{
level = "A";
}
}
public class Sales : User
{
public Sales()
{
level = "B";
}
}
public class Guest : User
{
public Guest()
{
level = "C";
}
}
public class FactoryCreator
{
public FactoryCreator(){}
public static User CreateUser(UserType userType) //根据用户类型初始化不同的用户
{
User u = null;
switch(userType)
{
case UserType.Employee:
u = new Employee();
break;
case UserType.Sales:
u = new Sales();
break;
case UserType.Guest:
u = new Guest();
break;
};
return u;
}
static void Main(string[] args)
{
Console.WriteLine("Input Type");
UserType t = (UserType)int.Parse(Console.ReadLine());
User newUser = FactoryCreator.CreateUser(t);
Console.WriteLine("Create an object:{0}" ,newUser.ToString());
Console.WriteLine("Level = {0}",newUser.GetLevel());
Console.ReadLine();
}
}
}
最近,正在抓紧时间看.NET的视频,期末考试结束了,整个人也散了,找不到什么正经的事情干,没事就在实验室泡着,学习一下各方各面的知识,拓展一下思路和知识,感觉不错,呵呵。
下面是在听WebCast的设计模式的视频时,实现的例子,比较简单,具体对模式的理解和应用还很需要深入……
using System;
namespace CSDesignPattern
{
public enum UserType{Employee=0, Sales=1, Guest=2};//声明一个枚举,三种类型的用户
public class User
{
protected string level = "Z"; //权限级别
public string GetLevel() //得到该用户权限,默认为Z
{
return level;
}
}
public class Employee : User //继承,重新设定级别
{
public Employee()
{
level = "A";
}
}
public class Sales : User
{
public Sales()
{
level = "B";
}
}
public class Guest : User
{
public Guest()
{
level = "C";
}
}
public class FactoryCreator
{
public FactoryCreator(){}
public static User CreateUser(UserType userType) //根据用户类型初始化不同的用户
{
User u = null;
switch(userType)
{
case UserType.Employee:
u = new Employee();
break;
case UserType.Sales:
u = new Sales();
break;
case UserType.Guest:
u = new Guest();
break;
};
return u;
}
static void Main(string[] args)
{
Console.WriteLine("Input Type");
UserType t = (UserType)int.Parse(Console.ReadLine());
User newUser = FactoryCreator.CreateUser(t);
Console.WriteLine("Create an object:{0}" ,newUser.ToString());
Console.WriteLine("Level = {0}",newUser.GetLevel());
Console.ReadLine();
}
}
}
相关文章推荐
- .NET设计模式(1): 简单工厂模式
- 一起谈.NET技术,走向ASP.NET架构设计——第五章:业务层模式,原则,实践(中篇)
- 一起谈.NET技术,走向ASP.NET架构设计——第五章:业务层模式,原则,实践(前篇)
- 步步为营 .NET 设计模式学习笔记 十三、Bridge (桥接模式)
- .NET反射、委托技术与设计模式
- .Net中的设计模式——Visitor模式的可行与不可爱
- .NET中的设计模式二:单件模式
- .Net中的设计模式——Strategy模式
- .NET设计模式:工厂方法模式(Factory Method)BY Terrylee
- 步步为营 .NET 设计模式学习笔记 十七、Flyweight(享元模式)
- .NET设计模式(1): 简单工厂模式
- 设计模式初探—简单工厂模式
- 步步为营 .NET 设计模式学习笔记 二十二、Memento(备望录模式)
- 步步为营 .NET 设计模式学习笔记 二十三、Interpreter(解释器模式)
- [翻译]使用设计模式简化.NET中菜单和Form元素之间的关系
- 设计模式系列·初探设计模式之王小二的疑问
- JAVA设计模式初探之装饰者模式
- 设计模式初探(一)「适配器模式」
- .Net设计模式
- .net中的设计模式之一步步发现装饰模式