我有一个设计问题,实际上并不复杂,但我想找到一种优雅的方法来解决它。我想到了这个:
问题:我有一个类 A 初始化并保留 B 的集合
B 只是一个接口,必须实现(所以我们有 C、D、E 等类)。
在构造函数 A 中接收一堆数据集,并且必须在给定每个数据集的情况下初始化 B 中的一些(也是相同或不同类的许多不同实例化)。我希望 A 不知道 B 的任何实现。
我有几个可行的解决方案,但我正在考虑一种“构造函数中的委托”。例如:
1. for each dataset, ds
2. for each implementation of B, bi
3. try to instantiate bi(ds)
4. if success (means no exception)
5. keep reference
这是因为我用来检查 bi 是否与初始化非常相似的数据和微积分,并且在性能关键的应用程序中,我想避免这样做两次或在集合类中进行。
这会非常好,但显然问题出在第 2 行......
以及对实际上不是异常的事情使用异常的怀疑。(第 4 行)
那么应该是什么模式
- 让我评估数据并构建所有内容。
- 避免创建几个“架构类”我想避免这样一个简单任务的类爆炸(在使用以下设计模式 java 风格原则夸大其词时很典型)。- 尽可能快。
- ...优雅:)