我正在過渡到爲我所有的項目使用OOP,歷史上我創建的所有東西都非常小,OOP似乎不是一個有效的選擇,但現在它是大型項目。然而,最近我遇到了越來越多的「最佳實踐」問題,而且我無法找到答案。PHP OOP理論 - 在課堂內部或外部檢查錯誤?
例如,假設我有以下幾點:
class numbers{
function __construct($number){
$this->number = (int)$number;
}
function add($add){
$this->added = $this->number + $add;
}
function multiply($multiply){
$this->multiplied = $this->number * $multiply;
}
function minus($minus){
$this->minused = $this->number - $minus;
}
function number(){
return $this->number();
}
}
現在,讓我們說,我想申請add
,然後multiply
然後minus
。每個階段都可能失敗(我沒有在例子中包括這一點,但想象它在那裏)。這是我的問題在於,我應該做的:
$numbers = new numbers(8);
if($numbers->add(7)){
if($numbers->multiply(6)){
if($numbers->minus(7){
echo $numbers->number();
}else{
echo 'error minusing';
}
}else{
echo 'error multiplying number';
}
}else{
echo 'error adding number';
}
還是應該有一部分在我的構造函數,如:
class numbers{
function __construct($number){
$this->add(6);
$this->multiply(9);
$this->minus(7);
if($this->error){
return false;
}else{
return true;
}
}
function add($add){
$this->added = $this->number + $add;
if(!this->added){
$this->error = "couldn't be added";
}
}
function multiply($multiply){
$this->multiplied = $this->number * $multiply;
if(!this->multiplied){
$this->error = "couldn't be multiplied";
}
}
function minus($minus){
$this->minused = $this->number - $minus;
if(!this->minused){
$this->error = "couldn't be minused";
}
}
function number(){
return $this->number();
}
function error(){
return $this->error();
}
}
,然後簡單地做:
$numbers = new numbers(5);
if($numbers){
echo $numbers->number();
}else{
echo $numbers->error();
}
對不起如果這個例子很長時間的囉嗦(也忽略了錯誤,我在這裏只是爲了描述我正在嘗試做什麼,這不是我正在使用的代碼),但是我不知道如何將短語沒有一個例子的問題。基本上,我應該在檢查課堂內部的錯誤,還是在我打電話給課堂時在外面做這些事情?
@FrustratedWithFormsDesigner:爲什麼編輯?該方法被稱爲「減號」 - 在這種情況下使用動詞形式是完全可以接受的。我認爲你的編輯讓問題更加混亂,而不是更少。 – Gian 2010-09-03 14:43:54
@Gian:當使用方法名稱作爲動詞時,通常最好清楚地說明你正在談論方法,而不是一般的更類似的動詞。這個:「我想要'加',然後'乘',然後'減'。」清楚地表明你在談論調用'minus'方法,而不是試圖誤用「minus」這個詞作爲動詞。 – FrustratedWithFormsDesigner 2010-09-03 14:59:10
在英語世界中,它被稱爲減法。減號是一個標誌。 – 2010-09-03 15:10:12