我正在编写一个具有静态方法的类,我的同事会在其客户端代码中调用该方法。该方法迭代一堆文件,更改其内容和名称。我想做的是回归一次成功/失败'值,然后是对文件所做更改的列表(不一定是正式的'列表')。
我尝试了什么
我目前的实现是构建一个TreeMap,其中键是一个整数,第一个值(位置0)是'成功'或者'失败'其余值(1到N)是所做更改的有序列表。
我的问题
如果您是我(尊敬的)同事,这个返回的数据结构对您来说是个好主意吗?是否有更优雅的东西,适合这种情况的设计模式?
我想保持我的方法是静态的(根据我公司的实用程序标准),所以我想避免使用自定义数据结构/对象。非常感谢。
答案 0 :(得分:3)
我不会将状态嵌入完全由完全不同的东西组成的数据结构中。
听起来像一个普通的元组,例如状态,以及代表任何东西的值对象。泛型通常用于表示这样的事情。
" best"但是,答案取决于我们不知道的事情,例如:
答案 1 :(得分:1)
如果您想要返回多个值或像这样的复杂对象,自定义数据结构将非常适合。当您返回地图时,该地图中的内容并不十分清楚。当你真的有键/值对而不是有序列表时,应该使用映射。如果您有一个有序列表,请使用列表。
没有理由不能拥有静态方法返回的自定义数据结构。然后你可以添加清晰的方法来指示你实际返回的内容。赞成您的代码的可读性,而不是如何最好地破解现有的数据结构以满足您的需求。
无论如何我的两分钱。
答案 2 :(得分:0)
你真的需要考虑你的客户会对"成功/失败"以外的信息做些什么。状态。如果您确实需要更多功能,那么请考虑返回一个对象(您的类或您的类的子类),它有方法来进行客户可能需要的查询。这样,您使用的内部结构可以隐藏(或根据需要更改),但客户端界面不必更改。客户会看到类似的东西:
Transform result = Transform.fixFiles(...);
if (result.isSuccessful()) {
xxxx
}
changes = result.getChangeList();