码迷,mamicode.com
首页 > 其他好文 > 详细

工厂模式

时间:2019-10-02 00:51:41      阅读:114      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!