/// 打开外部链接的能力抽象。 /// /// 界面层只依赖这个接口:一来把「打开链接」这种平台相关行为挡在 UI 之外, /// 二来测试里可以注入假实现,避免真的弹出浏览器。 abstract interface class UrlOpener { /// 打开 [url]。 void open(String url); }