设计对单个或多个值进行操作的接口方法时的最佳实践是什么


What is the best practice when designing an interface methods that operate on single or many values

设计对单个或多个值进行操作的接口方法时,最佳实践是什么?

我是否设计这样的界面:

interface DbItf
{
   /**
    * Drop table.
    *
    * @param string $tableName The database table name.
    *
    * @return bool Returns true on success, false on failure.
    */
    public function dbDropTable($tableName);
   /**
    * Drop tables.
    *
    * @param string[] $tableName The list of database table names.
    *
    * @return bool Returns true on success, false if one or more operations failed.
    */
    public function dbDropTables(array $tableName);
}

或:

interface DbItf
{
   /**
    * Drop table or tables.
    *
    * @param string|string[] $tableName The table name or list table names.
    *
    * @return bool Returns true on success, false if one or more operations failed.
    */
    public function dbDropTable($tableName);
}

使用第一种方法或第二种方法创建接口的优缺点是什么?

这纯粹是一种意见,就像最佳实践一样。

我认为第一个例子是多余的。 只要你记录了它接受一个字符串和一个数组,那么第二个例子就可以了,尽管可能会令人困惑,因为许多人可能认为它只接受一个表。 如果您希望名称接受多个值,将名称更改为 dropTables 可能更有意义。

注意:我还删除了db前缀。 您已经在Db界面中,在我看来,在方法中使用db是多余的。