From 2830e7d1be0f69c2354d87deb57146f0ab46b4d0 Mon Sep 17 00:00:00 2001 From: Trismegiste Date: Sat, 11 May 2013 19:33:36 +0200 Subject: [PATCH 1/3] first, the todos for fixing the pattern --- Adapter/Adapter.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Adapter/Adapter.php b/Adapter/Adapter.php index 3ecb4ed..85b9385 100644 --- a/Adapter/Adapter.php +++ b/Adapter/Adapter.php @@ -21,6 +21,10 @@ interface DatabaseAdapter class MySQL implements DatabaseAdapter { + /** + * The Adapter need to wrap the Adaptee in the constructor + * much like Decorator does. Nothing is adapted here... + */ public function getTables() { return $this->select('SHOW TABLES'); From 9278f295b009f562e185da5eef89a80508953eeb Mon Sep 17 00:00:00 2001 From: Trismegiste Date: Sat, 11 May 2013 20:54:21 +0200 Subject: [PATCH 2/3] more real example --- Adapter/Adapter.php | 41 ---------------------------------- Adapter/Book.php | 25 +++++++++++++++++++++ Adapter/ElecBookAdapter.php | 41 ++++++++++++++++++++++++++++++++++ Adapter/ElecBookInterface.php | 18 +++++++++++++++ Adapter/Kindle.php | 27 ++++++++++++++++++++++ Adapter/PaperBookInterface.php | 18 +++++++++++++++ 6 files changed, 129 insertions(+), 41 deletions(-) delete mode 100644 Adapter/Adapter.php create mode 100644 Adapter/Book.php create mode 100644 Adapter/ElecBookAdapter.php create mode 100644 Adapter/ElecBookInterface.php create mode 100644 Adapter/Kindle.php create mode 100644 Adapter/PaperBookInterface.php diff --git a/Adapter/Adapter.php b/Adapter/Adapter.php deleted file mode 100644 index 85b9385..0000000 --- a/Adapter/Adapter.php +++ /dev/null @@ -1,41 +0,0 @@ -select('SHOW TABLES'); - } -} - -class SQLite implements DatabaseAdapter -{ - public function getTables() - { - return system('sqlite --list-tables'); - } -} - diff --git a/Adapter/Book.php b/Adapter/Book.php new file mode 100644 index 0000000..dcd3b0f --- /dev/null +++ b/Adapter/Book.php @@ -0,0 +1,25 @@ +eBook = $ebook; + } + + /** + * This cass makes the proper translation from one interface to another + */ + public function open() + { + $this->eBook->pressStart(); + } + + public function turnPage() + { + $this->eBook->pressNext(); + } + +} \ No newline at end of file diff --git a/Adapter/ElecBookInterface.php b/Adapter/ElecBookInterface.php new file mode 100644 index 0000000..b16bd35 --- /dev/null +++ b/Adapter/ElecBookInterface.php @@ -0,0 +1,18 @@ + Date: Sat, 11 May 2013 20:56:47 +0200 Subject: [PATCH 3/3] the test is the client --- Tests/Adapter/AdapterTest.php | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 Tests/Adapter/AdapterTest.php diff --git a/Tests/Adapter/AdapterTest.php b/Tests/Adapter/AdapterTest.php new file mode 100644 index 0000000..9dda0eb --- /dev/null +++ b/Tests/Adapter/AdapterTest.php @@ -0,0 +1,42 @@ +open(); + $book->turnPage(); + } + +} \ No newline at end of file