我最近开始学习测试驱动开发,但我总是认为自己会改变类的设计,以便更高级别的类可以访问更多的属性。(更改设计后,我的测试用例也必须重写)
例如,我正在通过编写一个MineSweeper程序来练习这一点。MineFieldImp类有一个宽度和一个高度属性,但是我没有在前面创建的MineField接口中公开这个属性。但是后来我发现我需要这个特性,所以添加这些属性需要我向这个类添加公共方法以及它实现的接口。
我经常看到自己在向以前没有想到的类中添加方法或字段。我做错了什么?我应该做些什么来改进呢?
谢谢,杨
发布于 2011-09-09 22:48:05
你没有做错任何事。类设计是一个不断发展的过程,它是不断变化的。这就是TDD和单元测试的美妙之处。当您的设计发生变化时,您可以使用单元测试来确保重构没有破坏任何东西。
我强烈建议你读一读Fowler's Refactoring的书,里面有很多很棒的信息,包括许多有用的重构模式和如何重构的指导。它肯定会帮助你更有效率,并帮助你产生更好的面向对象的设计。
https://stackoverflow.com/questions/7363400
复制相似问题