关于 laravel-template-method-and-plugins
面向 Laravel 开发的编码技能,介绍如何保持核心流程稳定,并通过小型类扩展行为。内容涵盖 Template Method、策略接口、插件注册与独立测试。
主要功能
- 01Template Method 算法骨架
- 02通过子类钩子自定义
- 03策略接口与实现类
- 04按键或配置注册选择
- 05独立测试各项实现
适用场景
- 01构建步骤可替换的导入流程
- 02支持多种支付网关
- 03无需修改 switch 语句即可扩展行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ noartem/ skills --skill laravel-template-method-and-plugins安装后在 Claude Code 中输入/laravel-template-method-and-plugins确认已加载。
详细介绍
模板方法与可插拔策略
保持核心流程稳定;通过小型类实现扩展。
模板方法
使用定义算法骨架的基类;子类重写钩子。
abstract class Importer {
final public function handle(string $path): void {
$rows = $this->load($path);
$data = $this->normalize($rows);
$this->validate($data);
$this->save($data);
}
abstract protected function load(string $path): array;
protected function normalize(array $rows): array { return $rows; }
protected function validate(array $data): void {}
abstract protected function save(array $data): void;
}
策略/插件
定义接口;注册实现;根据键/配置进行选择。
interface PaymentGateway { public function charge(int $cents, string $currency): string; }
final class StripeGateway implements PaymentGateway { /* ... */ }
final class BraintreeGateway implements PaymentGateway { /* ... */ }
final class PaymentsRegistry {
/** @param array<string,PaymentGateway> $drivers */
public function __construct(private array $drivers) {}
public function for(string $key): PaymentGateway { return $this->drivers[$key]; }
}
优先新增类,而不是修改 switch 语句。单独测试各个实现。
评论
支持 Markdown