您的位置:首页 > 其它

读书笔记1:简单工厂模式

2011-11-09 03:33 211 查看
工厂模式,这几乎是最常见的了,当年在学校的时候,老师讲了n多设计模式,只有这个至今还能想起来的。工作中我用过两个地方,一是数据库的连接,二是和书上的收银台的例子一样的那种。 1、连接数据库,以access为例。这种最常见所以记得很清。
public class DAOFactory      {          static OleDbConnection conn;          private DAOFactory() { }          public static OleDbConnection DAOFactoryConnection(string dbPath,string dbPassword)          {            try              {                 string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};" +                 "Persist Security Info=True;Jet OLEDB:Database Password={1}";                  connStr = string.Format(connStr, filePath, pasword);                  conn = new OleDbConnection(connStr);              }              catch (Exception e)              {                  throw (e);              }              return conn;          }            public static void ConnClose()          {              if (conn != null)                  conn.Close();          }             public static void ConnOoen()          {              if (conn != null)                  conn.Open();          }      }
其他一种,以前我的项目中有一个关于抓取网页的,当然不是全部抓取,只是提取指定的一些网页的内容的,类似于小说下载阅读器的那种提取小说的。是这样实现的:
工厂类PageFactory:
Public clas   PageFactory  {      PageClass pclass;      Public static PageClass CreateFactory(string type)      {         Switch(type)          Case “网页类型一”:            Pclass = new PageClass1();            Break;          Case “网页类型二”:            Pclass = new PageClass2();            Break  …          Default:             Break;      }  }
网页类型父类:PageClass
Public class PageClass  {      Public abstract 返回类型 GetPageInfo()      {         Return 返回类型;      }    }
网页类型一的提取类:PageClass1
Public class PageClass1: PageClass  {     Public override 返回类型 GetPageInfo()      {        算法1;        Return 返回类型;      }  }
网页类型二的提取类:PageClass2
Public class PageClass2: PageClass  {     Public override 返回类型 GetPageInfo()     {         算法2;         Return 返回类型;     }  }
等等
调用:
Main  {     PageClass pclass= PageFactory. CreateFactory(type);      返回结果= PageClass. GetPageInfo();  }
使用工厂模式就实现了该功能,并且随着类型的不同可以很好的扩展。
本文出自 “西北白杨树” 博客,请务必保留此出处http://yangyoushan.blog.51cto.com/7229571/1276901
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: