2017-10-14 51 views
1

說classA以信用卡號碼作爲參數。它檢查信用卡號碼是否存在,然後將其傳遞到classB進行處理。應該輸入驗證重做以保證安全嗎?

應該CLASSB還檢查信用卡號是有效的,即使它總是會得到來自CLASSA這已經驗證了信用卡號碼?

ClassB的不會因在可預見的未來的任何其他類重用。

+1

依賴,如果有什麼ClassC調用ClassB的方法?這是關於防禦性編程,你是否應該檢查你調用的任何方法中的任何參數?不必要。你應該有一個方法可以進行CreditCard驗證,並且可以通過任何方法調用它。 –

回答

1

如果信用卡號碼是有效的,即使它會一直從classA獲得信用卡號碼,那麼classB也應該檢查信用卡號碼是否有效?

如果我們試圖實現具有高內聚性的低代碼耦合,只要有可能,您應該將每個類和方法的任務分離爲清晰的邊界。

你不想有重複,或半重複的工作。如果你爲每個類設置一個清晰的作業範圍,你可能會意識到每個類都可以獨立工作,並且代碼甚至可以被重用來與其他類一起工作。

想象一下,有一天你需要修改信用卡號碼驗證規則,你最終也不得不對classB進行修改。最糟糕的情況是,classA正在驗證classC以及classZ,並且您必須對所有使用classA的人員進行更改。所以一般來說,你應該「相信」classA做得很好,而classB只需要專注於自己的任務。