让我们说:
if (count <= instance.getFCount()) {
//do something and return String
} else if (count <= instance.getFSCount()) {
//do something and return String
} else if (count <= instance.getTCount()) {
//do something and return String
} else if (count <= instance.getOCount()) {
//do something and return String
}
Run Code Online (Sandbox Code Playgroud)
我在想如何将这些代码替换为更面向对象的代码.问题是,如果我有这样的声明:
if (count <= 0) {
//do something and return String
} else if (count <= 1) {
//do something and return String
} else if (count <= 2) {
//do something and return String
} else if (count <= 3) {
//do something and return String
}
Run Code Online (Sandbox Code Playgroud)
我可以用一些工厂模式或基于枚举的方法替换它,因为我的值0,1,2,3将始终是静态的.例如,我会创建一个映射来保持类对数字,然后如果我的计数为0我会知道我需要从类中创建一个映射为零的实例,依此类推.
但是现在我在想如果我在if条件中没有静态值,有什么办法可以做,因为例如返回的内容:instance.getOCount()根据配置的不同可能会有所不同.
你能给我一些想法如何实现这个目标吗?
我相信没有必要用设计模式替换这么简单的逻辑,这是不合理的.A switch将是一个改进(假设count是一个整数),但为什么要创建一堆类?只有每个人都有其他不同的行为才有理由.