我需要创建一个类,负责结果集处理,但可能需要使用不同的算法来处理该结果集。
我知道以下选项:
1)使用策略模式,下面是伪代码:
问题在于我不想将策略对象传递给上下文,而是想创建类似于StrategyFactory的东西,它将负责创建具体的策略实现。这将把客户端与策略分离 - 这是一个好的设计吗?
这是策略模式和工厂模式的混合还是仅仅是工厂模式?
我知道以下选项:
1)使用策略模式,下面是伪代码:
interface Strategy {
processResultSet(ResultSet rs);
}
class StrategyA implements Strategy {
processResultSet(ResultSet rs);
}
class StrategyB implements Strategy {
processResultSet(ResultSet rs);
}
Context类将包含对Strategy的引用,客户端应该传递实现Strategy创建Context对象,即
class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public doSomething(rs) {
strategy.processResultSet(rs);
}
问题在于我不想将策略对象传递给上下文,而是想创建类似于StrategyFactory的东西,它将负责创建具体的策略实现。这将把客户端与策略分离 - 这是一个好的设计吗?
这是策略模式和工厂模式的混合还是仅仅是工厂模式?