工厂模式

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设计模式——工厂模式简单工厂模式工厂方法模式抽象工厂模式

C++实现工厂模式(简单工厂模式工厂方法模式抽象工厂模式)

设计模式之工厂模式详解和应用

iOS经常使用设计模式——工厂方法(简单工厂模式,工厂方法模式, 抽象工厂模式)

设计模式——抽象工厂模式