我知道如何编程,但我想成为一名更好的程序员。我有一些更面向IO的类。一个带有宏,一些页码和一个下载器接口的URL,一个将许多htmls组合成一个可管理的xml的xpath。
我想到的问题是,我是让最终用户访问执行工作的方法,还是让我的类只有一个“运行”方法?或者我按原样保留类,没有run方法,并向实用程序类添加一个方法,该方法只构造对象并返回其最终值。
使用单一公共方法创建一个类感觉不对,但另一方面,制作一堆可以依赖的公共方法,因此杀死我重新考虑的因素也感觉不对。答案 0 :(得分:1)
你的问题似乎是single responsibility,你的方法似乎也做了很多不同的事情,因此需要许多公共方法才能测试。这是一个常见的指针,在编写单元测试时,“错误地”构建了一个类。
我在这里推荐的是将你的课分成多个,每个课包含一部分逻辑和一个责任。在每个类中,主要方法是公共的,并且在可测试时完成预期的工作。原始类现在可以使用其他对象的输出而不“知道”它们是如何做的。