【发布时间】:2012-06-27 18:38:37
【问题描述】:
在我的应用程序中,我的模型中似乎有很多表示逻辑:
<?php foreach ($this->users as $user): ?>
<span class="phone">
<?php echo $user->getPhoneNumberFormattedAsText(); ?>
</span>
<?php endforeach; ?>
起初,我开始将其视为对 View Helpers 的需求:
<span class="phone"><?php echo $this->userPhone($user->getPhone()); ?></span>
但是,我开始遇到一个问题,即我有很多特定于某些模型的小视图助手,它们不需要占用整个文件。如果我可以将这个表示逻辑组合在一起并将其排除在模型之外,那就太好了。我认为这是 decorator pattern 有意义的时候。
“装饰器模式是一种允许将行为动态添加到现有对象的设计模式。”
我在网上看到了一些示例,但没有真正实用的代码示例。我想知道您是否在您的 PHP 应用程序中成功使用了这种模式,以及这种模式的 PHP 示例应该是什么样子。
【问题讨论】:
标签: php design-patterns