首页 > 其他 > 详细

工厂模式

时间:2019-10-02 00:35:33      阅读:122      评论:0      收藏:0      [点我收藏+]

前面说了写的一个数据库管理软件
写配置文件,包括增删改查,不同数据库都是不一样的,如果写到一个函数里,函数太长想改一个东西得找半天,
使用工厂来解耦.参考了大话设计模式.
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#更简洁.
但是作为一个码农需要当社会主义的螺丝钉,哪里需要就去哪里.

工厂模式

原文:https://www.cnblogs.com/frog2008/p/11616481.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!