工人设计模式

lit*_*tuk 6 oop design-patterns worker

什么是"工人"设计模式?

Abd*_*man 11

工人的设计模式

问题:

  • 您有一个小对象,它是可以对该对象执行的数据和大量操作
  • 您希望保持对象的方法列表较小
  • 操作可以以不同方式完成,包括不同的实现
  • 您的小对象只知道如何从数据抽象层读取和保存自己
  • 您想批量处理许多小对象

解:

  • 您有一个工作者界面,它定义了工作人员的访问者API以及如何添加主题
  • 每个科目可以有多个工作人员
  • 您的工作人员进行转换,您的主题被转换
  • 您的主题保持轻量级

例:

您的ImageBinary对象表示包含高度和宽度的图像二进制文件(元数据已解耦).您可以对此对象执行各种操作,如调整大小,裁剪,缩放.

$image1 = new ImageBinary(array(‘id’ => 1));
$image2 = new ImageBinary(array(‘id’ => 2));
$image3 = new ImageBinary(array(‘id’ => 3));

$worker = new ImageWorker;
$worker->add($image1);
$worker->add($image2);
$worker->add($image3);
$worker->rotate(90);
Run Code Online (Sandbox Code Playgroud)

相关模式

  • 经理
  • 适配器


Dal*_*vak 7

可能是您在工作线程模式之后,您使用队列来安排您希望由工作线程"脱机"处理的任务.一些解决方案将使用工作线程池而不是单线程来利用并行化来实现性能提升.

  • 第一个链接死了:/ (7认同)