工厂类的意义
在进行项目多层开发的时候,首先我们要做的一个必须是:实现解耦(既高层对底层的直接依赖)一般的小型项目我们会建立三层结构:
这是最标准的三层结构,
还会有COMMIN , MODEL 层, =当然这不算在三层中,若是如图中实现直接高层调用底层则就造成耦合度太高,会导致项目扩展性小,把关联依赖降到最低,而不至于牵一发而动全身…
bll层代码
public class choux_bll
{
public static dal.chouxiang_dal gc{get;set;}
public string select () {
gc = chouxiang.gongchang.dal_bll();
return gc.sqlserver();
}
}
ui层代码–窗体程序
private void button1_Click(object sender, EventArgs e)
{
blls = bll_ui.Class1.ui_gongcahng();
string name = blls.chouxiang_chaxun();
MessageBox.Show(name);
}
ui层的配置文件
<appSettings>
<add key="bll" value="bll.choux_bll,bll"/>
</appSettings>
工厂类解耦
public class Class1
{
public static bll.choux_bll ui_gongcahng() {
string uis = ConfigurationManager.AppSettings["bll"];
Assembly assemb = Assembly.Load(uis.Split(',')[1]);
Type ty = assemb.GetType(uis.Split(',')[0]);
return (bll.choux_bll)Activator.CreateInstance(ty);
}
}
–切记
不要忘了相互引用,用一个工厂类代替了直接引用,代替了 new,这样就不用直接调用bll层了。