萝卜问题讨论的很多了,我就不再重复题目和要求了。我的OO解法对性能没有什么考虑,也没有在算法上有什么改进,主要目的有两个:1.用OO的方式表达,2.尽量使代码清晰易懂。当然了,世上不存在绝对好的代码,任何代码都有进一步改进的余地,所以如果觉得哪里可以进一步的改进,欢迎赐教。

Cell类,维护一个Cell本身的信息,包括他所在的行列坐标,格子里的萝卜数,以及计算它的特殊值。

    }

 

Field类,维护Field本身的信息,包括行列数,以及所有的Cell。同时暴露接口设置Cell、获取Cell以及遍历所有的Cell。

    }

Extension类,加了一个int的扩展方法Between

萝卜问题之我的OO解法 public static class Extension
    }

Program入口,初始化Field和Cell,计算并输出 

    }

Domain 的部分是Field和Cell,Program中处理输入和调用,由于Field实现了IEmumarable<T>接口, 可以使用LINQ做其他一些操作。每个方法代码量保持在10行或更少,易于理解。对于程序中的某些命名我还是不太满意,但是一时又想不出更好的名字了。

download code

相关文章:

  • 2021-12-08
  • 2021-04-27
  • 2021-06-18
  • 2022-12-23
  • 2022-01-25
  • 2021-08-31
  • 2022-01-07
  • 2022-02-21
猜你喜欢
  • 2021-07-25
  • 2022-01-25
  • 2022-02-11
  • 2022-12-23
  • 2021-09-22
相关资源
相似解决方案