工厂模式
Posted frog2008
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工厂模式相关的知识,希望对你有一定的参考价值。
前面说了写的一个数据库管理软件
写配置文件,包括增删改查,不同数据库都是不一样的,如果写到一个函数里,函数太长想改一个东西得找半天,
使用工厂来解耦.参考了大话设计模式.
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#更简洁.
但是作为一个码农需要当社会主义的螺丝钉,哪里需要就去哪里.
以上是关于工厂模式的主要内容,如果未能解决你的问题,请参考以下文章
JAVA设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式