想象一下一个用于跟踪对手之间游戏的“游戏”类.有一种方法可以根据用户输入的参数来检索游戏,这是更好的面向对象操作吗?还是有多种针对检索目标的方法更好?
class Games {
function get_games($game_id = NULL, $stadium_id = NULL, $start_date = NULL,
$end_date = NULL, $count = 999); {}
}
VS
class Games {
function get_all_games($count = 999); {}
function get_game_by_id($game_id = 1); {}
function get_games_by_stadium($stadium_id = 1); {}
function get_games_by_dates($start_date = NULL; $end_date = NULL) {}
}
好处的解释和任何编码/语法提示将不胜感激.谢谢.
解决方法:
我练习OOP的次数越多,我越会遵循有关将参数传递给方法的规则.有点像有许多嵌套的if语句嵌套,我发现如果我有两个以上的嵌套if语句,则可能做错了什么.
保持代码简单.您正在编写的是可以执行某些操作的方法,而不是可以执行所有操作的程序代码块.如果您想获得一款游戏,那么就获得一款游戏.如果要获取日期范围的列表,请执行此操作.
但是我要指出的是,您实际上并不需要get_all_games()-您可以只允许不带任何参数传递get_games_by_dates().如果什么都没有,那么它将永远获得每个日期的游戏(所有游戏)