将参数传递给可能揭示封装的方法

时间:2013-01-11 05:06:40

标签: oop methods

我有一个存储一些临时数据的类。此类具有“deleteOld”方法,用于清除过期数据。

将参数传递给该函数以设置有效期是否是个好主意?我的意思是deleteOld(expiredDays)。 或者这个函数应该封装expiredDays参数吗?

deleteOld()
{
  // get expiredDays from config
}

'expiredDays'是在config中设置的常量。

第一个变体看起来更灵活。但第二个看起来更多的OOP,因为类客户不需要知道任何关于expiredDays的事情。第二种方式没有揭示阶级实现的细节。

这是PHP,但我想这没关系

你怎么看?感谢。

1 个答案:

答案 0 :(得分:0)

它总是取决于业务逻辑。如果值控制业务逻辑的某些方面,则可以将其作为参数给出。这就是参数的用途。

在您的情况下,我认为expiredDays是管理存储数据的业务问题,因此揭示这一点没有问题。除了您的业务逻辑要求外部没有人会改变它。正如我所说,这取决于。

您不会透露的内容可能是数据的存储方式(文件系统,数据库......)。