admin

方法设计-清晰或多功能

sql

我已经用Java和C#制作了一个类,可以执行SQL查询,例如,我有一个名为Delete的方法,该方法接受多个参数。

public static int Delete(String table, String column, String operand, Object value)

我将 _值_作为对象类型,因为我可能想删除基于String,Integers或booleans的行,这意味着该方法足够灵活以支持不同的类型。我然后追加附加“
”,这取决于它是否是一个字符串或不通过使用字符到查询 的instanceof (在C#或.GetType)在Java测试

粗略的例子:

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

在实现该类的其余部分时,我开始考虑前面提到的方法是否是理想的方法,还是应该针对特定的数据类型实现其他方法,一种用于容纳String,另一种用于Integer,依此类推。

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

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

谢谢提供信息!


阅读 133

收藏
2021-06-07

共1个答案

admin

两者都不。

您必须使用参数化查询。

你说的没错;您应该将其保存在一个方法中。
在C#中,有时使此类方法通用是有用的。

2021-06-07