Cuando estoy mirando mi código y le escribo cosas como ..El uso de una gran cantidad de cadenas codificada en código de
if (role == "Customer")
{
bCustomer = true;
}
else if (role == "Branch")
{
bIsBranch = true;
}
O
foreach(DataRow as row in myDataSet.Tables[0].Rows)
{
row["someField"]=somefield.Tostring()
}
hacen ustedes esto? ¿Cuándo está bien hacerlo y cuándo no deberías estar haciendo esto? ¿Qué pasa si alguno sería un mejor enfoque para escribir esto, si hay alguno?
Gracias por los comentarios: Supongo que debo agregar lo que si (para este ejemplo) solo estoy usando esta comparación de roles una vez? ¿Sigue siendo una mejor idea hacer una clase completamente nueva? Además, si tuviera 1 clase llamada "constantes", ¿hay varias clases que contengan constantes específicas, como la clase "roles", por ejemplo?
Es difícil dar una respuesta definitiva, pero en el primer ejemplo, trataría de refactorizarlo para usar polimorfismo, si corresponde. En el segundo caso, probablemente crearía una clase contenedora alrededor de la DataTable que tiene los nombres de columna como constantes de cadena, por lo que hay un lugar central para ellos. Todos los consumidores solo usan la clase contenedora y no la DataTable. –