Cuál es mejor entre estos dos estilos de código?

03/07/2007 - 22:54 por Rolandpish | Informe spam
Hola, estoy haciendo una aplicación en C# y tengo esta pregunta:

Tengo un método llamado sqlQueryBD el cual recibe una cadena de texto
(sentencia SQL) y la ejecuta contra una base de datos.
Además tengo una clase llamada sqlCompat con una propiedad llamada sqlText
cuyo propósito es traducir la sentencia sql a una sentencia "escapeada", por
ejemplo:
insert into people values ('cod001','Carl
Johnson','\\computer\directory\file01.txt')
es reemplazada por esta:
insert into people values ('cod001','Carl
Johnson','\\\\computer\\directory\\file01.txt')

El constructor de esa clase traductora es:
public sqlCompat(string text)
{
this.text = sqlCompatSTR(text.Trim());
}

Y estos son los métodos setter y getter de la propiedad sqlText:
private string text;
public string sqlText
{
get
{
return text;
}
set
{
text = sqlCompatSTR(value.Trim());
}
}
en donde sqlCompatSTR es el método encargado de hacer la traducción.

En un form llamado frmQuerySFG en el evento click de un botón tengo este
código y funciona perfecto:

sqlQueryBD(new sqlCompat("select * from table").sqlText);

Claro, de esta forma también funciona exactamente igual

//Declaro esta variable para uso de toda la frmQuerySFG (esto está fuera del
evento del botón
sqlCompat s_sql = new sqlCompat();

//Esto sí va en el evento click del botón
s_sql.sqlText = "select * from table";
sqlQueryBD(s_sql.sqlText);

Ok, cuál es mejor entre estos dos estilos?
El primer estilo es más rápido ya que solamente es una línea de código, pero
no sé si habrán problemas al estar creando una instancia cada vez que llamo
al método sqlQueryBD
El segundo estilo no crea una instancia cada vez que sqlQueryBD es llamado,
pero implica más líneas de código además de crear la variable para cada form
que hago.

He estado usando el primer estilo pero quiero saber si el segundo es mejor
para comenzar a usarlo.

Muchas gracias por su ayuda.
 

Leer las respuestas

#1 Alberto Poblacion
04/07/2007 - 08:27 | Informe spam
"Rolandpish" wrote in message
news:
[...][1]
sqlQueryBD(new sqlCompat("select * from table").sqlText);

[...][2]
sqlCompat s_sql = new sqlCompat();
[...]
s_sql.sqlText = "select * from table";
sqlQueryBD(s_sql.sqlText);

Ok, cuál es mejor entre estos dos estilos?



Hay una tercera opción mejor que las anteriores: declara el método como
estático en la clase SqlCompat, y llámalo directamente con el nombre de la
clase, sin crear nunca una instancia:

class sqlCompat
{
public static string sqlCompatSTR(string s)
{
...
}
}

Luego lo llamas así:

sqlQueryBD(sqlCompat.sqlCompatSTR("select * from table"));

Preguntas similares