Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 选择方法或类的理由是什么?_Oop_Analysis - Fatal编程技术网

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

Oop 选择方法或类的理由是什么?,oop,analysis,Oop,Analysis,假设您需要反转字符串 您可以创建一个名为reverseString的方法。但是你会考虑制作一个叫StrugRealver的课程吗?如果不是,您使用什么标准来决定需要创建一个类 附言:这可能涉及到系统分析的话题。如果您熟悉一些能够清晰回答问题的问题或经验法则,请分享。这是一个判断电话 在这里,我们看到的是执行单个操作且不需要状态的单个函数。此外,也不需要行为。在这些情况下,我将创建一个名为StringUtils的静态[1]类或模块,并将函数放在那里。我会将其他类似的函数放在同一个类/模块中 [1]

假设您需要反转字符串

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


附言:这可能涉及到系统分析的话题。如果您熟悉一些能够清晰回答问题的问题或经验法则,请分享。

这是一个判断电话

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


[1] 我所说的“静态”是指完全由组成的类。

仅当您具有实例状态时才创建实例类:也就是说,如果您在内存中表示持久对象

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


但是考虑方法<代码> String。Concat(PARAMString []字符串)和类<代码> StringBuilder < /代码>,两者都做相同的事情(连接字符串),但是<代码> StringBuilder < /Cord>有一种状态,你可以在消费者之间传递,这不是用

.Concat
方法可以做到的。

谢谢。你的理由是什么?@JamesPoulson:我已经扩展了答案。