标签:box not mys turn imp cep 语法 python use
前面说了写的一个数据库管理软件
写配置文件,包括增删改查,不同数据库都是不一样的,如果写到一个函数里,函数太长想改一个东西得找半天,
使用工厂来解耦.参考了大话设计模式.
private void xmlsave()
{
string server = this.textBoxServer.Text;
string user = this.textBoxUid.Text;
string password = this.textBoxPass.Text;
string type = this.textBox_type.Text;
Hashtable hashtable = new Hashtable();
hashtable["server"] = server;
hashtable["user"] = user;
hashtable["password"] = password;
hashtable["type"] = type;
dbo dboone;
dboone = dbofactory.getdbo(type);
dboone.xmlsave(hashtable);
xmlload();
}
public class dbofactory
{
public static dbo getdbo(string type)
{
//throw new System.NotImplementedException();
if (type == "mysql")
{
return new dbomysql();
}
else if (type == "sqlserver")
{
return new dbosqlserver();
}
else
{
return new dbosqlserver();
}
}
}
这样代码就容易改了,学名叫可扩展性.原来吐槽过c#语法的类的扩展,简直是太难写,在JavaScript经常用的,在c#里基本不用.
这次再吐槽一下内部类,本来dboone.xmlsave(hashtable);根本不用传参数,只要内部类能访问this.textBoxServer
就可以了,代码也更简洁,但是c#里内部类无法访问外部类属性,java里可以通过outter来访问,c#好多东西都是学别的语言,
但是学了一个四不像,不知道是谁设计的c#语法,其实也想转java或者python,但是好多年都做c#,java根本面试不上,其实我java写的比c#更简洁.
但是作为一个码农需要当社会主义的螺丝钉,哪里需要就去哪里.
标签:box not mys turn imp cep 语法 python use
原文地址:https://www.cnblogs.com/frog2008/p/11616481.html