flutter 在域层中使用软件包是不是一种不好的做法?[关闭]

qfe3c7zg  于 2023-05-08  发布在  Flutter
关注(0)|答案(1)|浏览(116)

已关闭,此问题为opinion-based。目前不接受答复。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

3天前关闭。
Improve this question
我见过像ResoCoder的Clean Architecture方法这样的项目,在域层中使用包,比如equatable

import 'package:equatable/equatable.dart';

class UserEntity extends Equatable {

  final String displayName;
  final String photoUrl;
  final String email;

  UserEntity({
    required this.displayName,
    required this.photoUrl,
    required this.email,
});

  @override
  List<Object?> get props => [
    displayName,
    photoUrl,
    email
  ];

}

dartz使用函数式编程:

class SignInUsecase implements Usecase<NoInput, UserEntity> {

  final IAuthRepository repository;
  SignInUsecase(this.repository);

  @override
  Future<Either<Failure, UserEntity>> call(NoInput param) async {
    return await repository.signIn();
  }

}

有没有更好的方法来处理这个问题,而不需要在域层中使用这些包?

vzgqcmou

vzgqcmou1#

这不一定是一个“坏做法”,这是一个权衡的决定:如果你在你的应用程序的核心中允许某些库,那么在将来可能很难摆脱这些库或者用其他的库来替换它们。另一方面,人们不想总是重新发明轮子。
因此,你需要为你的代码库决定你真正需要的库,你相信它仍然会在那里,并在未来几年内维护,你最好不要让哪个库进入你的应用程序的核心,而是“推”到一些接口/抽象后面,以确保它可以在以后轻松地被替换。
就我个人而言,我试图最小化对领域层中“外部库”的依赖,这在大多数项目中会导致零外部依赖,除了我的“开发平台”(主要是dotnet)的核心库。

相关问题