Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
| 1 | <?php |
||
| 5 | class EstimatedArrival extends Rate\EstimatedArrival |
||
| 6 | { |
||
| 7 | const EA_MONDAY = 'MON'; |
||
| 8 | const EA_TUESDAY = 'TUE'; |
||
| 9 | const EA_WEDNESDAY = 'WEB'; |
||
| 10 | const EA_THUSDAY = 'THU'; |
||
| 11 | const EA_FRIDAY = 'FRI'; |
||
| 12 | const EA_SATURDAY = 'SAT'; |
||
| 13 | // Sunday is an invalid day :-) |
||
| 14 | |||
| 15 | private $Time; |
||
| 16 | private $PickupDate; |
||
| 17 | private $PickupTime; |
||
| 18 | private $DelayCount; |
||
|
|
|||
| 19 | private $Date; |
||
| 20 | |||
| 21 | /** |
||
| 22 | * @param \stdClass|null $response |
||
| 23 | */ |
||
| 24 | 5 | View Code Duplication | public function __construct(\stdClass $response = null) |
| 46 | |||
| 47 | /** |
||
| 48 | * @return mixed |
||
| 49 | */ |
||
| 50 | public function getTime() |
||
| 54 | |||
| 55 | /** |
||
| 56 | * @param mixed $Time |
||
| 57 | */ |
||
| 58 | public function setTime($Time) |
||
| 62 | |||
| 63 | /** |
||
| 64 | * @return mixed |
||
| 65 | */ |
||
| 66 | public function getPickupDate() |
||
| 70 | |||
| 71 | /** |
||
| 72 | * @param mixed $PickupDate |
||
| 73 | */ |
||
| 74 | public function setPickupDate($PickupDate) |
||
| 78 | |||
| 79 | /** |
||
| 80 | * @return mixed |
||
| 81 | */ |
||
| 82 | public function getPickupTime() |
||
| 86 | |||
| 87 | /** |
||
| 88 | * @param mixed $PickupTime |
||
| 89 | */ |
||
| 90 | public function setPickupTime($PickupTime) |
||
| 94 | |||
| 95 | /** |
||
| 96 | * @return mixed |
||
| 97 | */ |
||
| 98 | public function getDelayCount() |
||
| 102 | |||
| 103 | /** |
||
| 104 | * @param mixed $DelayCount |
||
| 105 | */ |
||
| 106 | public function setDelayCount($DelayCount) |
||
| 110 | |||
| 111 | /** |
||
| 112 | * @return mixed |
||
| 113 | */ |
||
| 114 | public function getDate() |
||
| 118 | |||
| 119 | /** |
||
| 120 | * @param mixed $Date |
||
| 121 | */ |
||
| 122 | public function setDate($Date) |
||
| 126 | |||
| 127 | } |
||
| 128 |