ariestamirra

facade

Aug 2nd, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.71 KB | None | 0 0
  1. <?php
  2. class Book {
  3.     private $author;
  4.     private $title;
  5.     function __construct($title_in, $author_in) {
  6.         $this->author = $author_in;
  7.         $this->title  = $title_in;
  8.     }
  9.     function getAuthor() {
  10.         return $this->author;
  11.     }
  12.     function getTitle() {
  13.         return $this->title;
  14.     }
  15.     function getAuthorAndTitle() {
  16.         return $this->getTitle().' by '.$this->getAuthor();
  17.     }
  18. }
  19. class CaseReverseFacade {
  20.     public static function reverseStringCase($stringIn) {
  21.         $arrayFromString = ArrayStringFunctions::stringToArray($stringIn);
  22.         $reversedCaseArray = ArrayCaseReverse::reverseCase($arrayFromString);
  23.         $reversedCaseString = ArrayStringFunctions::arrayToString($reversedCaseArray);
  24.         return $reversedCaseString;
  25.     }
  26. }
  27. class ArrayCaseReverse {
  28.     private static $uppercase_array =
  29.         array('A', 'B', 'C', 'D', 'E', 'F',
  30.               'G', 'H', 'I', 'J', 'K', 'L',
  31.               'M', 'N', 'O', 'P', 'Q', 'R',
  32.               'S', 'T', 'U', 'V', 'W', 'X',
  33.               'Y', 'Z');
  34.     private static $lowercase_array =
  35.         array('a', 'b', 'c', 'd', 'e', 'f',
  36.               'g', 'h', 'i', 'j', 'k', 'l',
  37.               'm', 'n', 'o', 'p', 'q', 'r',
  38.               's', 't', 'u', 'v', 'w', 'x',
  39.               'y', 'z');
  40.     public static function reverseCase($arrayIn) {
  41.         $array_out = array();
  42.         for ($x = 0; $x < count($arrayIn); $x++) {
  43.          if (in_array($arrayIn[$x], self::$uppercase_array)) {
  44.                  $key = array_search($arrayIn[$x], self::$uppercase_array);
  45.          $array_out[$x] = self::$lowercase_array[$key];
  46.          } elseif (in_array($arrayIn[$x], self::$lowercase_array)) {
  47.                  $key = array_search($arrayIn[$x], self::$lowercase_array);
  48.          $array_out[$x] = self::$uppercase_array[$key];
  49.              } else {
  50.          $array_out[$x] = $arrayIn[$x];
  51.              }
  52.         }
  53.     return $array_out;
  54.     }
  55. }
  56. class ArrayStringFunctions {
  57.     public static function arrayToString($arrayIn) {
  58.       $string_out = NULL;
  59.       foreach ($arrayIn as $oneChar) {
  60.         $string_out .= $oneChar;
  61.       }
  62.       return $string_out;
  63.     }
  64.     public static function stringToArray($stringIn) {
  65.       return str_split($stringIn);
  66.     }
  67. }
  68. writeln('BEGIN TESTING FACADE PATTERN');
  69. writeln('');
  70. $book = new Book('Design Patterns', 'Gamma, Helm, Johnson, and Vlissides');
  71. writeln('Original book title: '.$book->getTitle());
  72. writeln('');
  73. $bookTitleReversed = CaseReverseFacade::reverseStringCase($book->getTitle());  
  74. writeln('Reversed book title: '.$bookTitleReversed);
  75. writeln('');
  76. writeln('END TESTING FACADE PATTERN');
  77. function writeln($line_in) {
  78.   echo $line_in."&lt;br/&gt;";
  79. }
  80. ?>
Advertisement
Add Comment
Please, Sign In to add comment