选择方法或类的理由是什么?

时间:2013-06-29 11:43:02

标签: oop analysis

假设您需要撤消字符串。

你可以创建一个名为reverseString的方法。但是你会考虑创建一个名为StringReverser的类吗?如果没有,您使用什么标准来决定是否需要制作课程?

P.S:这可能涉及系统分析的主题。如果您熟悉一些明确回答问题的问题或经验法则,请分享。

2 个答案:

答案 0 :(得分:1)

这是一个判断电话。

在这里,我们正在研究一个执行单个操作且不需要状态的函数。此外,不需要polymorphic行为。在这些情况下,我会创建一个静态[1]类或一个名为StringUtils的模块,并将该函数放在那里。我会将其他类似的函数放在同一个类/模块中。

[1]“静态”是指一个完全由static methods组成的类。

答案 1 :(得分:1)

如果你有实例状态,那么只创建一个实例类:也就是说,如果你在内存中表示一个持久对象。

如果反转字符串的行为需要持久状态或配置,我只会创建一个StringReverser类 - 但我想不出任何,所以我不会。

但是考虑方法String.Concat(params String[] strings)和类StringBuilder之间的区别,两者都做同样的事情(将字符串连接在一起),但是StringBuilder具有可以在消费者之间传递的状态,这不是.Concat方法所能做到的。