2012-05-05 7 views
0

Я твердо верю, что шаблон Decorator действительно помогает при сохранении кода, но помогает ли это улучшить производительность в веб-приложении? Потому что вам нужно создать экземпляр класса, а затем использовать его, но без него вы просто создаете ссылки обычным способом. Просто для того, чтобы освежить ваш разум, вот пример кода:Улучшает ли производительность декоратора производительность?

<?php 
    class decorateEmail implements decoratorInterface { 
     public function decorate($item) { 
      $return = '<a href="mailto:' . $item . '">' . $item . '</a>'; 
      return $return; 
     } 
    } 
?> 

И вот диаграмма UML; Я надеюсь, что это помогает больше:

enter image description here

EDIT:
Если ответ нет, мы можем сделать вывод, что все шаблоны проектирования не являются полезными и что крупномасштабные веб-приложения, такие как Facebook, Digg и т.д. не использовать их?

+1

Ну, экземпляр объекта + вызов метода, конечно, медленнее, чем никакой инстанцирования, и никакого вызова метода. Значит, так? Возможно нет. – deceze

ответ

5

Указ рисунка декоратора не для улучшения производительности; это добавить поведение к существующему объекту.

Дизайн шаблонов при разумном использовании полезен для лучшего управления дизайном и эволюцией базы кода. Производительность всего одна интересный дизайн и архитектура программного обеспечения; другие проблемы касаются, например, ремонтопригодность, безопасность и расширяемость.

Шаблоны проектирования полезны в крупномасштабной разработке программного обеспечения; но также взгляните на принципы дизайна, как SOLID principles.

+0

Каким образом шаблоны проектирования помогают улучшить безопасность? Я знаю, что это помогает в ремонтопригодности, но не в безопасности! – ALH

+3

Шаблон проектирования прокси, например, может использоваться для управления доступом к объекту. –

Смежные вопросы