本文共 2038 字,大约阅读时间需要 6 分钟。
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://graum.baihongyu.com/