【发布时间】:2014-07-13 08:47:37
【问题描述】:
我的案例由三个类组成,即 SourceFactory、Source 和 SourceTypeI。我只想在 SourceFactory 中创建 SourceTypeI 的实例。换句话说,除了 SourceFactory,没有任何类可以创建 SourceTypeI 的实例。如何防止其他类可以创建 SourceTypeI?
预期用途;
SourceFactory sF = new SourceFactory();
Source source = sF.createSource();
// from there, I should reach methods of SourceTypeI via source
source.whoIs();
类
|-------------| |-----------------------|
|SourceTypeI | |SourceFactory |
|-------------| |-----------------------|
|+whoIs():void| |+createSource():Source |
| | | |
|-------------| |-----------------------|
|-----------------------------|
| Source | <- Source cannot be instantiated, it is used just a
|-----------------------------| for referencing instance of SourceTypeI
| |
|-----------------------------|
【问题讨论】:
-
要限制的是Source(如代码所示)还是SourceTypeI(如文中所说)?
标签: java oop object-oriented-analysis