mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-07-25 17:21:19 +02:00
removed Interface-suffix
This commit is contained in:
@@ -2,25 +2,11 @@
|
|||||||
|
|
||||||
namespace DesignPatterns\Structural\Adapter;
|
namespace DesignPatterns\Structural\Adapter;
|
||||||
|
|
||||||
class Book implements BookInterface
|
interface Book
|
||||||
{
|
{
|
||||||
/**
|
public function turnPage();
|
||||||
* @var int
|
|
||||||
*/
|
|
||||||
private $page;
|
|
||||||
|
|
||||||
public function open()
|
public function open();
|
||||||
{
|
|
||||||
$this->page = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function turnPage()
|
public function getPage(): int;
|
||||||
{
|
|
||||||
$this->page++;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getPage(): int
|
|
||||||
{
|
|
||||||
return $this->page;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -1,12 +0,0 @@
|
|||||||
<?php declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace DesignPatterns\Structural\Adapter;
|
|
||||||
|
|
||||||
interface BookInterface
|
|
||||||
{
|
|
||||||
public function turnPage();
|
|
||||||
|
|
||||||
public function open();
|
|
||||||
|
|
||||||
public function getPage(): int;
|
|
||||||
}
|
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace DesignPatterns\Structural\Adapter;
|
namespace DesignPatterns\Structural\Adapter;
|
||||||
|
|
||||||
interface EBookInterface
|
interface EBook
|
||||||
{
|
{
|
||||||
public function unlock();
|
public function unlock();
|
||||||
|
|
@@ -3,20 +3,20 @@
|
|||||||
namespace DesignPatterns\Structural\Adapter;
|
namespace DesignPatterns\Structural\Adapter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the adapter here. Notice it implements BookInterface,
|
* This is the adapter here. Notice it implements Book,
|
||||||
* therefore you don't have to change the code of the client which is using a Book
|
* therefore you don't have to change the code of the client which is using a Book
|
||||||
*/
|
*/
|
||||||
class EBookAdapter implements BookInterface
|
class EBookAdapter implements Book
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var EBookInterface
|
* @var EBook
|
||||||
*/
|
*/
|
||||||
protected $eBook;
|
protected $eBook;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param EBookInterface $eBook
|
* @param EBook $eBook
|
||||||
*/
|
*/
|
||||||
public function __construct(EBookInterface $eBook)
|
public function __construct(EBook $eBook)
|
||||||
{
|
{
|
||||||
$this->eBook = $eBook;
|
$this->eBook = $eBook;
|
||||||
}
|
}
|
||||||
@@ -35,7 +35,7 @@ class EBookAdapter implements BookInterface
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* notice the adapted behavior here: EBookInterface::getPage() will return two integers, but BookInterface
|
* notice the adapted behavior here: EBook::getPage() will return two integers, but Book
|
||||||
* supports only a current page getter, so we adapt the behavior here
|
* supports only a current page getter, so we adapt the behavior here
|
||||||
*
|
*
|
||||||
* @return int
|
* @return int
|
||||||
|
@@ -6,7 +6,7 @@ namespace DesignPatterns\Structural\Adapter;
|
|||||||
* this is the adapted class. In production code, this could be a class from another package, some vendor code.
|
* this is the adapted class. In production code, this could be a class from another package, some vendor code.
|
||||||
* Notice that it uses another naming scheme and the implementation does something similar but in another way
|
* Notice that it uses another naming scheme and the implementation does something similar but in another way
|
||||||
*/
|
*/
|
||||||
class Kindle implements EBookInterface
|
class Kindle implements EBook
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
|
26
Structural/Adapter/PaperBook.php
Normal file
26
Structural/Adapter/PaperBook.php
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace DesignPatterns\Structural\Adapter;
|
||||||
|
|
||||||
|
class PaperBook implements Book
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var int
|
||||||
|
*/
|
||||||
|
private $page;
|
||||||
|
|
||||||
|
public function open()
|
||||||
|
{
|
||||||
|
$this->page = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function turnPage()
|
||||||
|
{
|
||||||
|
$this->page++;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPage(): int
|
||||||
|
{
|
||||||
|
return $this->page;
|
||||||
|
}
|
||||||
|
}
|
@@ -28,27 +28,27 @@ Code
|
|||||||
|
|
||||||
You can also find this code on `GitHub`_
|
You can also find this code on `GitHub`_
|
||||||
|
|
||||||
BookInterface.php
|
|
||||||
|
|
||||||
.. literalinclude:: BookInterface.php
|
|
||||||
:language: php
|
|
||||||
:linenos:
|
|
||||||
|
|
||||||
Book.php
|
Book.php
|
||||||
|
|
||||||
.. literalinclude:: Book.php
|
.. literalinclude:: Book.php
|
||||||
:language: php
|
:language: php
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
EBookAdapter.php
|
PaperBook.php
|
||||||
|
|
||||||
.. literalinclude:: EBookAdapter.php
|
.. literalinclude:: PaperBook.php
|
||||||
:language: php
|
:language: php
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
EBookInterface.php
|
EBook.php
|
||||||
|
|
||||||
.. literalinclude:: EBookInterface.php
|
.. literalinclude:: EBook.php
|
||||||
|
:language: php
|
||||||
|
:linenos:
|
||||||
|
|
||||||
|
EBookAdapter.php
|
||||||
|
|
||||||
|
.. literalinclude:: EBookAdapter.php
|
||||||
:language: php
|
:language: php
|
||||||
:linenos:
|
:linenos:
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace DesignPatterns\Structural\Adapter\Tests;
|
namespace DesignPatterns\Structural\Adapter\Tests;
|
||||||
|
|
||||||
use DesignPatterns\Structural\Adapter\Book;
|
use DesignPatterns\Structural\Adapter\PaperBook;
|
||||||
use DesignPatterns\Structural\Adapter\EBookAdapter;
|
use DesignPatterns\Structural\Adapter\EBookAdapter;
|
||||||
use DesignPatterns\Structural\Adapter\Kindle;
|
use DesignPatterns\Structural\Adapter\Kindle;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
@@ -11,7 +11,7 @@ class AdapterTest extends TestCase
|
|||||||
{
|
{
|
||||||
public function testCanTurnPageOnBook()
|
public function testCanTurnPageOnBook()
|
||||||
{
|
{
|
||||||
$book = new Book();
|
$book = new PaperBook();
|
||||||
$book->open();
|
$book->open();
|
||||||
$book->turnPage();
|
$book->turnPage();
|
||||||
|
|
||||||
|
Binary file not shown.
Before Width: | Height: | Size: 83 KiB After Width: | Height: | Size: 60 KiB |
Reference in New Issue
Block a user