首页 > 解决方案 > 用于检查是否应执行类的 PHP 设计模式

问题描述

我开发了一个基于 Laravel 的应用程序,它可以发送各种电子邮件,例如通知用户新工作和新消息。

我已经创建了所有必要的邮件类。我们现在要创建一个数据库列,允许各个用户设置是否要接收这些通知电子邮件。

当用户执行通常会发送电子邮件的操作时,我希望系统根据他们在数据库中的设置检查用户是否想要接收这些电子邮件。我不想在代码中使用不必要的if()函数来包装所有对电子邮件的调用。

有没有我可以用来处理这个问题的首选设计模式?

标签: phplaraveldesign-patterns

解决方案


它被称为外观模式:https ://en.wikipedia.org/wiki/Facade_pattern

  • 扩展 Laraval 的PendingMail对象
  • send()将函数重写为仅在满足parent::send()您的if()条件时调用
  • 返回Mail::to()您的扩展版本

Laravel 有一些关于如何在此处执行此操作的文档: https ://lumen.laravel.com/docs/7.x/mail


推荐阅读