方法设计 - 清晰度或多功能

Jam*_*ing 2 c# java sql oop

我在Java和C#中创建了一个允许我执行SQL查询的类,例如我有一个名为Delete的方法,它接受几个参数;

public static int Delete(String table, String column, String operand, Object value)
Run Code Online (Sandbox Code Playgroud)

我将值作为Object类型,因为我可能想要删除基于String,Integers或booleans的行,这意味着该方法足够灵活,可以支持不同的类型.然后我通过在Java中使用instanceof测试(或C#中的.GetType),根据它是否为字符串向查询添加其他" ' "字符

原油示例:

if (value instanceof String) 
{   
    System.out.println("It's a String");   
}   
else 
{   
    System.out.println("It's not a String");   
}
Run Code Online (Sandbox Code Playgroud)

在实现类的其余部分时,我开始自己思考前面提到的方法是否是理想的方法,或者我是否应该为特定的数据类型实现其他方法,一个用于容纳String,另一个用于Integer等等.

如果我去实现它,那么它将意味着在逻辑上会有其他方法具有最小的差异,但是每个方法只有一个目的,使它们易于遵循和记录.另一方面,如果我保持原样,那么生成和维护的代码就会少得多,它可以管理任何类型的Delete语句(就数据类型而言),只需要几个if语句确定通过参数传入的对象的类型.

从面向对象/最佳代码实践的角度来看,哪种方法最好?

谢谢你的信息!

SLa*_*aks 5

都不是.

您必须使用参数化查询.

不过你是对的; 你应该把它保存在一个方法中.
在C#中,有时将这些方法设为通用是有用的.