首页 > 解决方案 > 如何在没有“部分”指令的情况下访问私有字段?

问题描述

设置一个包的多个库需要访问其自己库中的常用类的情况。此类被导出并包含私有字段,只能由包的库在内部访问。因为part of不鼓励该指令,我正在避免它。所以这就是挑战:如何在不使用的情况下从同一个包的另一个库访问公共类的私有字段part of

这是一个想出的:

class PublicClass {
  Object _shouldNotBePublic;
}

class InternalClass extends PublicClass {
  Object get publicInternally => _shouldNotBePublic;
}

它部分地解决了这个问题。但是现在有一个导出的函数

void someFunction(PublicClass param) {
  param._shouldNotBePublic;
}

它需要一个参数PublicClass并且它需要访问私有_shouldNotBePublic字段。这正是 C++friend所做的。Dart 有什么不涉及的好的解决方案part of吗?

编辑:我暂时使用的解决方法是在同一个库中一个简单的未导出函数,例如PublicClass

Object getShouldNotBePublic(PublicClass obj) {
  return obj._shouldNotBePublic
} 

标签: dart

解决方案


推荐阅读