Code Duplication    Length = 32-32 lines in 3 locations

src/Structural/Decorator/AvocadoBurger.php 1 location

@@ 10-41 (lines=32) @@
7
 * Class AvocadoBurger
8
 * @package codenixsv\Patterns\Structural\Decorator
9
 */
10
class AvocadoBurger implements BurgerInterface
11
{
12
    /**
13
     * @var BurgerInterface
14
     */
15
    private $burger;
16
17
    /**
18
     * CheeseBurger constructor.
19
     * @param BurgerInterface $burger
20
     */
21
    public function __construct(BurgerInterface $burger)
22
    {
23
        $this->burger = $burger;
24
    }
25
26
    /**
27
     * @return int
28
     */
29
    public function getPrice(): int
30
    {
31
        return $this->burger->getPrice() + 3;
32
    }
33
34
    /**
35
     * @return string
36
     */
37
    public function getDescription(): string
38
    {
39
        return $this->burger->getDescription() . ' with avocado';
40
    }
41
}
42

src/Structural/Decorator/CheeseBurger.php 1 location

@@ 10-41 (lines=32) @@
7
 * Class CheeseBurger
8
 * @package codenixsv\Patterns\Structural\Decorator
9
 */
10
class CheeseBurger implements BurgerInterface
11
{
12
    /**
13
     * @var BurgerInterface
14
     */
15
    private $burger;
16
17
    /**
18
     * CheeseBurger constructor.
19
     * @param BurgerInterface $burger
20
     */
21
    public function __construct(BurgerInterface $burger)
22
    {
23
        $this->burger = $burger;
24
    }
25
26
    /**
27
     * @return int
28
     */
29
    public function getPrice(): int
30
    {
31
        return $this->burger->getPrice() + 2;
32
    }
33
34
    /**
35
     * @return string
36
     */
37
    public function getDescription(): string
38
    {
39
        return $this->burger->getDescription() . ' with cheese';
40
    }
41
}
42

src/Structural/Decorator/SaladBurger.php 1 location

@@ 10-41 (lines=32) @@
7
 * Class SaladBurger
8
 * @package codenixsv\Patterns\Structural\Decorator
9
 */
10
class SaladBurger implements BurgerInterface
11
{
12
    /**
13
     * @var BurgerInterface
14
     */
15
    private $burger;
16
17
    /**
18
     * CheeseBurger constructor.
19
     * @param BurgerInterface $burger
20
     */
21
    public function __construct(BurgerInterface $burger)
22
    {
23
        $this->burger = $burger;
24
    }
25
26
    /**
27
     * @return int
28
     */
29
    public function getPrice(): int
30
    {
31
        return $this->burger->getPrice() + 1;
32
    }
33
34
    /**
35
     * @return string
36
     */
37
    public function getDescription(): string
38
    {
39
        return $this->burger->getDescription() . ' with salad';
40
    }
41
}
42