C++设计模式之 简单工厂模式讲解(历史上最简单明白的例子)
2012-12-11 17:19
609 查看
工作之余,在看资料过程中发现一个极易理解的简单工厂模式的例子,自己亲自试练一番,感觉对这个设计模式不熟悉的朋友,
一看马上就知道是什么回事了。
简单工厂模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返的类都有一个共同的你类和共同的方法,
但每个方法执行的任务不同,而且根据不同的数据进行了优化。
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。
下面进行一个代码示例:
public class getName
{
private string _fName, _lName;
public string fName { get; set; }
public string lName { get; set; }
}
定义一个类,返回带有空格在名字中间的人的姓与名
public class fristName : getName
{
public fristName(string name)
{
int i=name.Trim().IndexOf(' ');
if (i > 0)
{
fName = name.Substring(0, i).Trim();
lName = name.Substring(i + 1).Trim();
}
else
{
fName = name;
lName = "";
}
}
}
定义一个类,返回带有逗号在名字中间的人的姓与名
public class lastName : getName
{
public lastName(string name)
{
int i = name.Trim().IndexOf(',');
if (i > 0)
{
lName = name.Substring(0, i).Trim();
fName = name.Substring(i + 1).Trim();
}
else
{
lName = name;
fName = "";
}
}
}
下面创建简单的工厂模式的类:
public class nameFac
{
public nameFac()
{ }
public static getName GetName(string name)
{
int i = name.IndexOf(',');
if (i > 0)
{
return new lastName(name);
}
else
{
return new fristName(name);
}
}
}
通过一个nameFac工厂类把所有的业务流程都耦合在一起。在界面层使用的时候只需代用到工厂类就可以返回结果。
getName gn = nameFac.GetName("Kelly Chen");
richTextBox1.Text = gn.fName + " , " + gn.lName;
一看马上就知道是什么回事了。
简单工厂模式根据提供给它的数据,返回几个可能类中的一个类的实例。通常它返的类都有一个共同的你类和共同的方法,
但每个方法执行的任务不同,而且根据不同的数据进行了优化。
简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。
下面进行一个代码示例:
public class getName
{
private string _fName, _lName;
public string fName { get; set; }
public string lName { get; set; }
}
定义一个类,返回带有空格在名字中间的人的姓与名
public class fristName : getName
{
public fristName(string name)
{
int i=name.Trim().IndexOf(' ');
if (i > 0)
{
fName = name.Substring(0, i).Trim();
lName = name.Substring(i + 1).Trim();
}
else
{
fName = name;
lName = "";
}
}
}
定义一个类,返回带有逗号在名字中间的人的姓与名
public class lastName : getName
{
public lastName(string name)
{
int i = name.Trim().IndexOf(',');
if (i > 0)
{
lName = name.Substring(0, i).Trim();
fName = name.Substring(i + 1).Trim();
}
else
{
lName = name;
fName = "";
}
}
}
下面创建简单的工厂模式的类:
public class nameFac
{
public nameFac()
{ }
public static getName GetName(string name)
{
int i = name.IndexOf(',');
if (i > 0)
{
return new lastName(name);
}
else
{
return new fristName(name);
}
}
}
通过一个nameFac工厂类把所有的业务流程都耦合在一起。在界面层使用的时候只需代用到工厂类就可以返回结果。
getName gn = nameFac.GetName("Kelly Chen");
richTextBox1.Text = gn.fName + " , " + gn.lName;
相关文章推荐
- 面向对象编程设计模式--简单工厂模式讲解(历史上最简单明白的例子)
- 面向对象编程设计模式--简单工厂模式讲解(历史上最简单明白的例子)
- 通过例子学设计模式之--简单工厂模式以及使用场景说明(C++实现)
- 一个例子讲解adapter设计模式(非常简单)
- C++设计模式——简单工厂模式及具体应用(含例子)
- 设计模式-简单工厂模式(三)计算器小例子
- [Gof设计模式]简单工厂模式和工厂模式的C++实现
- 《Head First 设计模式》例子的C++实现(5 单例模式)
- 简单讲解Java设计模式编程中的单一职责原则
- 设计模式 篇 单子模式 门面模式 适配器 工厂模式 观察者模式 命令者模式 装饰者模式 代理模式 简单讲解
- C#设计模式——简单说(简单工厂模式)
- Android设计模式之一个例子让你彻底明白装饰者模式(Decorator Pattern)
- c++设计模式--简单工厂模式
- C++设计模式——简单工厂模式
- 设计模式之工厂模式结合单例模式C++计算器代码DEMO(历史代码,贴出学习)
- C#设计模式——抽象工厂 非洲美洲食物链简单例子代码
- C++设计模式之简单工厂模式
- 设计模式之简单工厂C++实现
- C++设计模式——简单工厂模式
- 实例讲解PHP设计模式编程中的简单工厂模式