尤川豪   ·  1月前
Exp. 1,997  ·  255 貼文  ·  192 留言

看到滿酷的 design pattern:用實作介面來表示「增減功能」的行為

https://docs.laravel-excel.com/3.1/exports/collection.html

這個 design pattern 很酷 第一次看到

用實作介面來表示「增減功能」的行為

範例:

namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromQuery;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithColumnFormatting;
use Maatwebsite\Excel\Concerns\WithStrictNullComparison;
use App\User;
use App\Order;
use PhpOffice\PhpSpreadsheet\Shared\Date;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;

class UserPaymentExport implements FromCollection, WithHeadings, WithColumnFormatting, ShouldAutoSize, WithStrictNullComparison
{
    //...
}

說來奇怪,OOP 的「介面」初衷應該不是這樣的?

應該是用來規範實作介面的那些類別、確保它們都有提供某些方法才對?

  分享   共 45 次點閱
共有 0 則留言
您的留言
  贊助本站開發,解鎖進階教材
尤川豪
Exp. 1,997  ·  255 貼文  ·  192 留言

關於作者

Devs.tw 作者,喜歡分享&建造新東西的工程師。

歡迎在 Facebook 追蹤我!不定期分享有趣技術文章!

  查看個人檔案