如果我有一个 java class SpecificDialog
并且在该类中我有一个 public static class Builder
用于构建 SpecificDialog
的对象那么 Builder
位于 SpecificDialog
内部的原因是因为它在逻辑上属于那里,因为它只能用于构建 SpecifcDialogs。这是主要原因吗?
但是如果Builder
位于SpecificDialog
内部,那么我的SpecificDialog
就可以访问每个private
字段/成员构建器
。这可能是不可取的,因为我可能会无意中从外部 SpecificDialog
修改一些此类私有(private) Builder's
字段。
是否对此无能为力?如果没有,我是否可以理解这不是一个大问题?
最佳答案
无论您选择什么设计,您总是会无意中做一些不应该做的事情。让构建器成为它构建的类的静态内部类是一种常见的习惯用法,之所以使用这种习惯,正是因为外部类可以访问构建器的私有(private)字段。将构建器视为外部类的一个组成部分,就像私有(private)字段或方法一样,并确保该类及其构建器按其应有的方式运行。
关于java - java中静态私有(private)类的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13174986/