在我们的应用程序中,方法通常会返回嵌套的数据结构。我们将它们表示为DTO,其中一个DTO可以包含其他DTO或其列表。有问题的方法主要是为GUI提供展示的东西。
到目前为止,“内部”DTO是常规公共类的对象。开发人员很想在各种其他DTO类中重用这些内部DTO。虽然这看起来像是一个受欢迎的代码重用应用程序,但它只会在松散相关的方法之间创建不必要的依赖关系。
避免这种情况的一种方法是“展平”DTO,使得根本没有嵌套,并且所有属性都是简单的标量类型。然而,在许多情况下,这似乎是不自然的,例如,当外部和内部DTO之间存在1:n关系并且导航这样的DTO会变得更加麻烦。
所以我们想,我们可以创建内部类的“内部”DTO实例(外部DTO类的)。这应该以减少代码重用为代价来减少依赖性。
但后来我们注意到,除非我们将内部类公开,否则不能从外部访问内部类的方法(例如,返回这样的DTO的方法)。但是,任何人都可以创建这个内部类的实例(尽管它不那么诱人)。
所以基本问题是:
答案 0 :(得分:2)
你可以做你的建议。如果要阻止其他人创建实例,可以使构造函数包为local或private。如果类也是公共的,您可以在任何地方访问这些方法,但只能在允许的地方构建它们。
答案 1 :(得分:0)