我有一些条件,比如 -
List globalList = new ArrayList();
if(X.isExists)
globalList(new XBasedClass());
if(Y.isExists && Z.isExists)
globalList(new ZYBasedClass());
else if(Y.isExists || Z.isExists)
globalList(new CommonBasedClass());
if(N.isExists)
....
首先我想到了使用状态模式,但我意识到然后对于每个条件我需要声明类,并且我想限制数字类。
其次我想到了使用装饰器模式,但是再次需要上面的条件检查,如果需要,那么上面的循环会产生任何问题。
我的条件只需要在列表中添加新类,没有别的,甚至将来如果条件数量增加,即使工作仍然相同,即更新列表。
所以我使用静态方法创建了一个私有类,它只是验证条件并相应地更新列表。
是否有更好的推荐设计来实现它
答案 0 :(得分:1)
可以将创建委托给工厂类。如果您有不同的实现类型集,那么是一个抽象工厂。所以有模式。
我不确定那些if块是否只是一个例子,但它们可以被优化,例如将if(Y.isExists)移动到上面的块。
答案 1 :(得分:0)
我写这篇文章是为了解答几条评论。