我正在开发一个移动应用程序,其中有一个请求类负责将请求发送到服务器。有什么好习惯,可以在访问它的类的构造函数中初始化此请求类,然后调用该函数,或者将api函数声明为静态,以便无需事先初始化即可调用这些函数?
答案 0 :(得分:0)
如果您希望请求共享实例变量(例如http.Client
),则应首选构造函数变体。正如ryanwebjackson所说,这也使测试更加容易。如果它们只是不共享信息的功能的集合,那么静态方法就可以了。
如果您担心实例化多个资源密集型对象,则可以创建可以懒惰地初始化昂贵任务的getter,例如
abstract class Request {
final Client client;
var _loadsOfData;
Request(this.client);
Future get loadsOfData async => _loadsOfData ??= _fetchLoadsOfData();
}