简单工厂模式概念
专门定义一个类来创建其他类的实例,被创建的实例通常继承自同一个类或者接口,简单工厂模式又称为静态工厂方法(Static Factory Method)模式,属于类的创建型模式,通常根据一个条件(参数)来返回不同的类的实例。
相关文章
http://www.cnblogs.com/anlyren/archive/2008/01/25/simple_Factory_Pattern.html
应用场景
提供一个类,由它负责根据一定的条件创建某一具体类的实例。
UML类图(图片来之 http://www.cnblogs.com/anlyren/archive/2008/01/25/simple_Factory_Pattern.html)
示例代码
假设我们的程序需要用到多个数据库,如sqlserver、mysql等,这时就需要有多个DbHelper类,我们可以利用简单工厂实习创建不同的DbHelper类,这里只是简单的实现DbHelper类,不对具体功能实现。
1、定义一个IDbHelper接口
public interface IDbHelper { void ExecuteSql(string SQLString); }
2、具体的DbHelper类
public class DbHelperMySQL :IDbHelper { public void ExecuteSql(string SQLString) { Console.WriteLine("mysql执行!"); } } public class DbHelperSQLServer : IDbHelper { public void ExecuteSql(string SQLString) { Console.WriteLine("sqlserver执行"); } }
3、工厂类实现
public static IDbHelper CreateDbHelper(string dataBaseName) { switch (dataBaseName.Trim().ToLower()) { case "mysql" : return new DbHelperMySQL(); case "sqlserver": return new DbHelperMySQL(); default: throw new Exception("没有您输入的数据库帮助类!"); } }
4、调用测试
static void Main(string[] args) { IDbHelper dbHelper = DbHelperFactory.CreateDbHelper("mysql"); dbHelper.ExecuteSql(""); }