静态方法M返回一个对象实现接口A:
interface A { ... }
static A M() { ... }
在M我想构造一个类型的对象B并返回它,给定B实现A:
class B implements A { ... }
我不希望客户端代码知道有关如何B实现的任何信息,我宁愿B不成为一个类static,B 必须是不可变的,并且可以不同的方式B交给不同的客户端。我想不惜一切代价阻止B外部方法的实例化M(正如一位用户评论的那样,缺少反射)。
我怎样才能实现上述目标?我应该在哪里以及如何实施B?您能否提供一个简短的代码示例?
我的主要问题是:我怎样才能拥有“不同B的 s”?