Page 39 - 4252
P. 39

об'єктно-орієнтованому контексті найбільш "чистою" формою моделі є об'-
                  єкт моделі предметної області. В якості моделі можна розглядати і сцена-
                  рій транзакції, якщо він не містить в собі ніякої логіки, пов'язаної з призна-
                  ченим для користувача інтерфейсом. Подібне визначення не дуже розши-
                  рює поняття моделі, однак повністю відповідає розподілу ролей у розгля-
                  нутому типовому рішенні.
                       Представлення  відображає  вміст  моделі  засобами  графічного  інтер-
                  фейсу. Таким чином, якщо модель - це об'єкт покупця, відповідне подання
                  може бути фреймом з купою елементів управління або HTML-сторінкою,
                  заповненою інформацією про покупця. Функції подання полягають тільки
                  у  відображенні  інформації  на  екрані.  Всі  зміни  інформації  обробляються
                  третім "учасником" системи - контролером. Контролер одержує вхідні дані
                  від користувача, виконує операції над моделлю і вказує подання на необ-
                  хідність відповідного оновлення. У цьому плані графічний інтерфейс мож-
                  на розглядати як сукупність подання та контролера.
                       Говорячи про типове рішення модель-подання-контролер, не можна не
                  підкреслити два основні типи поділу: відділення подання від моделі та від-
                  ділення контролера від подання.
                       Відділення подання від моделі - це один з фундаментальних принци-
                  пів проектування програмного забезпечення. Наявність такого поділу дуже
                  важливо з ряду причин:
                       • Представлення і модель відносяться до абсолютно різних сфер про-
                  грамування.
                       • Користувачі хочуть, щоб, залежно від ситуації, одна і та ж інформа-
                  ція могла бути відображена різними способами.
                       • Об'єкти, що не мають візуального інтерфейсу, набагато легше тесту-
                  вати, ніж об'єкти з інтерфейсом.
                       Ключовим моментом  у  відділенні подання від моделі є спрямування
                  залежностей: представлення залежить від моделі, але модель не залежить
                  від подання. Це означає, що зміна уявлення не вимагає зміни моделі.
                       Відділення контролера від подання. Класичним прикладом необхідно-
                  сті такого поділу є підтримка редагованої і не редагованої поведінки. Цьо-
                  го можна досягти за наявності одного подання і двох контролерів (для двох
                  варіантів використання), де контролери є стратегіями, використовуваними
                  поданням.  Тим  часом  на  практиці  в  більшості  систем  кожному  поданню
                  відповідає  тільки  один  контролер,  тому  поділ  між  ними  не  проводиться.
                  Про  це  рішення  згадали  тільки  з  появою  Web-інтерфейсів,  де  відділення
                  контролера від подання виявилося надзвичайно корисним.








                                                           38
   34   35   36   37   38   39   40   41   42   43   44