下面两种哪种好些,性能快些
第一种:
public String pins(String categoryId, Integer boardId, Integer userId, String username, Integer max, Integer limit) {
if (categoryId != null) {
} else if (boardId != null) {
} else if (userId != null) {
} else if (username != null) {
}
return "";
}
第二种:
public String pinsCategoryId(String categoryId, Integer max, Integer limit) {
return "";
}
public String pinsBoardId(Integer boardId, Integer max, Integer limit) {
return "";
}
public String pinsUserId(Integer userId, Integer max, Integer limit) {
return "";
}
public String pinsUsername(String username, Integer max, Integer limit) {
return "";
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
4个方法,只有 id/name 参数不一样,再加个参数可以一个方法定义出来
由于你返回值是
String
类型,我猜你函数内部很有可能需要把Integer
的 id 变成String
。这种情况下可以把第 2 个参数明确定义成String
,在传入Integer
的 id 时传入它的toString()
结果。这种使用
switch
的结构看起来和上面的if
结构类似,但是语义上要简单好理解得多。如果你不想使用
switch
结构,可以定义接口,通过匿名类对象来实现。如果你用 Java8,可以使用 Lambda 表达式来实现。你只要想一下写方法注释的时候,哪一种写出来的注释更简洁明了,就知道哪种更好了。
毕竟程序首先是要给人看的。
个人感觉
1.针对性能来说这两种实现方式的优劣是无意义的,因为,无论使用这两种的哪一种,程序运行起来,都不会在性能上有什么差别。
2.在可读性和可维护性上来说可能更有讨论空间:第一种方式,参数太多,并且是不可扩展的。如果你pins的可能性增加了,那么你第一个方法就必须修改(增加参数和if else),除此之外,调用该方法的所有地方都必须进行散弹式修改。而第二种方式,只要新添加一个方法就行了。如果是面向接口编程的话,那么要修改的点几乎只是增加一个新的方法这一点,其他地方的代码根本不用动。
@janet_ddr 说的是有些道理的。你的方法应该越简单越好,一个方法只做一件事。
yo man,how about this one:
调用起来蛮好看。
没有任何理由选择第一种
都不适合,用抽象吧
看不出来那几个方法是干什么的。
如果你仅仅是想判断那四个参数的合法性,用第二种。如果你要做一件事同时需要这四个参数,用第一种。
看了你的这几个方法,仔细一看,只有第一个参数不一样,后两个都一样.
我觉得原型模式挺适合这里的
性能差异不大,只能从可读性来看。第一种参数列表太长了给人烦躁的感觉,尤其是调用的时候更让人抓狂.第二种的话用抽象不错噢
用枚举,一般不需要在这个级别考虑性能问题