0

一時データを格納するクラスがあります。このクラスには、期限切れのデータを消去するための「deleteOld」メソッドがあります。

その関数にパラメーターを渡して有効期限を設定することは良い考えですか? のようなものを意味しますdeleteOld(expiredDays)。または、この関数は expiredDays パラメータをカプセル化する必要がありますか?

deleteOld()
{
  // get expiredDays from config
}

「expiredDays」は、config で設定された定数です。

最初のバリアントはより柔軟に見えます。しかし、2 つ目はより OOP に見えます。なぜなら、クラスのクライアントは、expiredDays について何も知る必要がないからです。2 番目の方法では、クラスの実現の詳細が明らかになりません。

それはPHPですが、それは問題ではないと思います

どう思いますか?ありがとう。

4

1 に答える 1

0

それは常に、主にビジネスロジックに依存します。値がビジネスロジックのある側面を制御する場合、それをパラメータとして指定できます。それがパラメータの目的です。

expiredDaysあなたの場合、それは保存されたデータを管理するためのビジネス上の問題だと思うので、これを明らかにすることは問題ありません。あなたのビジネスロジックが外部からの誰もそれを変えてはならないことを要求することを除いて。私が言ったように、それは異なります。

明らかにされないのは、おそらくデータの保存方法(ファイルシステム、DBなど)です。

于 2013-01-11T07:34:09.957 に答える