【发布时间】:2016-06-19 17:38:13
【问题描述】:
我有一个名为 BaseRecurring 的基类。
它有一个名为_checkCurrentMonth的受保护函数
_checkCurrentMonth里面,
BaseRecurring 类中的代码是
protected function _checkNextMonth($type, $startDate = 1, $endDate = 1)
{
$incrementToFirstDay = $startDate - 1;
$incrementToLastDay = $endDate - 1;
$startDate = new \DateTime('first day of this month');
$endDate = new \DateTime('first day of next month');
if ($incrementToFirstDay > 0 || $incrementToLastDay > 0) {
// e.g. if we want to start on the 23rd of the month
// we get P22D
$incrementToFirstDay = sprintf('P%dD', $incrementToFirstDay);
$incrementToLastDay = sprintf('P%dD', $incrementToLastDay);
$startDate->add(new \DateInterval($incrementToFirstDay));
$endDate->add(new \DateInterval($incrementToLastDay));
}
$this->checkMonth($type, $startDate, $endDate);
}
问题是我不希望基类定义checkMonth 的实现。我希望子类实现checkMonth 方法。
我打算有一个名为CheckMonthInterface 的接口,它将显式声明一个名为checkMonth 的方法。
那么我是否让基类实现CheckMonthInterface,然后将该方法保持为空?
还是让基类没有实现CheckMonthInterface,然后让子类实现它?
【问题讨论】:
标签: php inheritance interface