我无法将单一职责原则与封装相协调。似乎在类之间划分职责需要公开大量数据。例如,考虑一些名为DataPoints
. DataPoints
填充了 x 和 y 坐标等。我可以创建一个生成器类来填充DataPoints
. 现在,假设我想绘制这些数据点。显然,这是一个单独的职责,可能来自一个名为DataPointsPlotter
. 但要绘制数据,我需要知道内部 x 和 y 坐标是什么。一个班级同时处理这两个问题,这没问题。x 和 y 是内部变量,但 create() 和 print() 方法都可以访问这些变量。我可以公开 x 和 y(也许通过 getters/setters--ugh)或者我可以通过DataPoints
结构到 Plotter 类,但它仍然需要进入内部以获取 x 和 y。我可以在DataPoints
发送 x 和 y 的类中声明一个 Plotter 实例。但这仍然是一个曝光。
在此示例中,如何在不违反封装的情况下使用绘图仪绘制 x 和 y?