设计对单个或多个值进行操作的接口方法时,最佳实践是什么?
我是否设计这样的界面:
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
是多余的。