基类:
namespace DesignModel.AppCode
{
public class Namer
{
protected string firstName, lastName;
public string getFirstName()
{
return firstName;
}
public string getLastName()
{
return lastName;
}
}
}
namespace DesignModel.AppCode
{
public class ChildLastName : Namer
{
public ChildLastName(string name)
{
int i = name.IndexOf(",");
if (i > 0)
{
lastName = "调用last类:" + name.Substring(0, i);
firstName = "调用last类:" + name.Substring(i + 1).Trim();
}
else
{
lastName = "调用last类:" + name;
firstName = "调用last类:";
}
}
}
}
namespace DesignModel.AppCode
{
public class ChildFirstName : Namer
{
public ChildFirstName(string name)
{
int i = name.Trim().IndexOf(" ");
if (i > 0)
{
firstName = "调用first类" + name.Substring(0, i).Trim();
lastName = "调用first类" + name.Substring(i + 1).Trim();
}
else
{
firstName = "调用first类" + name;
lastName = "调用first类";
}
}
}
}
工厂类:
namespace DesignModel.AppCode
{
/// <summary>
/// 工厂类,作用是根据输入返回指定的对象
/// </summary>
public class NameFactory
{
public Namer getName(string name)
{
int i = name.IndexOf(",");
if (i > 0)//如果有逗号则返回ChildFullName类
return new ChildLastName(name);
else//如果没有逗号则返回ChildFirstName类
return new ChildFirstName(name);
}
}
}