设计运行单个或多个值的接口方法时,最佳做法是什么。
我是否设计了这样的界面:
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);
}
使用第一种或第二种方法创建接口的优缺点是什么?
答案 0 :(得分:2)
这纯粹是一种意见,因为最佳做法往往是。
我认为第一个例子是多余的。只要你记录它接受一个字符串和一个数组,那么第二个例子就没问题了,尽管很多人可能会认为它只接受一个表的名称。如果您希望它接受多个值,则将名称更改为dropTables
可能更有意义。
注意我还删除了db
前缀。您已经在Db
界面,我认为该方法中db
是多余的。