gpt4 book ai didi

flutter - Dart 包 - 如何隐藏内部方法和类?

转载 作者:行者123 更新时间:2023-12-03 04:13:45 33 4
gpt4 key购买 nike

我正在为 Flutter Apps 开发一个包
有些方法和类只对包本身有用,而不是对将要导入我的包的程序员有用,是否可以隐藏这些方法和类以进一步实现?
例子:
数据服务.dart

export class DataService{

//Must be visible only for my library
static notifyDataChanged(InternalEvent internalEvent){ ... }

//Must be visible for anyone
static addCallbackOnDataChange(onDataChangeCallback) { ... }

}
内部事件.dart
//Must be visible only for my library as well
export class InternalEvent {
...
}

最佳答案

拥有仅包声明的常用方法是将它们放在 lib/src/ 中的库中。目录,而不是导出该库。包中的其他库可以导入仅包库,但不鼓励包外的用户导入lib/src/中的库直接地。 (这并非不可能,只是不鼓励这样做,因为该软件包可以在没有警告的情况下自由更改这些库)。
如果仅包功能需要访问公共(public)类的库私有(private)部分,那么它们需要在同一个库中。传统的方法是在 lib/src/ 的库中声明两者。并仅导出该库中需要公开的部分:

library myPackage;
export "src/allDeclarations.dart" hide Private, Declarations;
// or, preferably,
export "src/allDeclarations.dart" show Public, Things;
通常,如果绝对必要,您应该只将导出的和非导出的声明放在同一个库中。否则 hide/ show列表变得过于繁琐,很容易忘记 hide 中的声明列表。

关于flutter - Dart 包 - 如何隐藏内部方法和类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62486669/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com