Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/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
Coding style 什么';oop中更好的编码方式是什么:一种方法有一个参数,而两种方法没有参数?_Coding Style_Standards - Fatal编程技术网

Coding style 什么';oop中更好的编码方式是什么:一种方法有一个参数,而两种方法没有参数?

Coding style 什么';oop中更好的编码方式是什么:一种方法有一个参数,而两种方法没有参数?,coding-style,standards,Coding Style,Standards,从oop的角度来看,干净代码的更好方法是什么?有两个名称不同的相关方法,还是一个带有额外参数的通用方法 (简化)示例: 1.public void LogError(){…} public void LogWarning(){…} VS 2.公共无效日志(LogType LogType){…}//LogType.Error vs LogType.Warning两者都是不错的选择。也许举几个例子可以更清楚地说明这一点。通常,我会想谁会使用这个库(我或其他人)以及我使用什么编程语言 例如: publ

从oop的角度来看,干净代码的更好方法是什么?有两个名称不同的相关方法,还是一个带有额外参数的通用方法

(简化)示例:

1.
public void LogError(){…}
public void LogWarning(){…}

VS


2.
公共无效日志(LogType LogType){…}//LogType.Error vs LogType.Warning

两者都是不错的选择。也许举几个例子可以更清楚地说明这一点。通常,我会想谁会使用这个库(我或其他人)以及我使用什么编程语言

例如:

public void SaveProduct(bool cache) { ... }
如果我使用Java、C等强类型语言,那么我更喜欢选择2

如果我使用PHP或Python之类的其他工具,那么我更喜欢选择1

例如,如果我想为其他要使用我的库的开发人员制作一个简化的界面,那么我也更喜欢选择1

例如,当您使用LogTypeenum时,这其实并不重要。试着想想如何描述意图并把它说清楚

注意布尔参数,它们可能会让人困惑很多次。例如:

public void SaveProduct(bool cache) { ... }
在这些情况下,选择1通常更好,因为很难理解布尔值的作用。(它是如何改变行为的)另外,它通常告诉我们该方法正在执行两个不同的操作,因此可能有一种方法可以重构它。例如,将其拆分为两个方法,然后开发人员就不需要知道实现细节