请教,这两个代码,哪个更合理?

SilentHunter460 2020-06-08 01:21:28
这两个代码,哪个更合理?哪个更容易维护?
如果要保证每个方法不超过20行,造汽车1比较好。但是方法太多,调来调去,跳来跳去,好像也不易阅读。
造汽车2一个方法的代码可能上百行,但只要一个方法。虽然感觉压力很大,但是想象成读文章,好像也合理。而且可以用注释把代码分段。

public class 造汽车1 {

public void 造一辆汽车() {
采矿();
把矿做成原料();
把原料做成零件();
把零件组装成汽车();
出厂前检查();
}

private void 采矿() {
System.out.println("采矿");
}

private void 把矿做成原料() {
System.out.println("把矿做成原料");
}

private void 把原料做成零件() {
System.out.println("把原料做成零件");
}

private void 把零件组装成汽车() {
System.out.println("把零件组装成汽车");
}

private void 出厂前检查() {
System.out.println("出厂前检查");
}

public static void main(String[] args) {
new 造汽车1().造一辆汽车();
}

}


public class 造汽车2 {

public void 造一辆汽车() {
System.out.println("采矿");
System.out.println("把矿做成原料");
System.out.println("把原料做成零件");
System.out.println("把零件组装成汽车");
System.out.println("出厂前检查");
}

public static void main(String[] args) {
new 造汽车2().造一辆汽车();
}

}
...全文
2182 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
第一种做法好像更符合面相对象的标准
  • 打赏
  • 举报
回复
第一种。 更好的是Builder模式——用内部类的方式。
浴火_凤凰 2020-07-10
  • 打赏
  • 举报
回复
如果自己使用 第二种好 完整 不分散。 如果考虑以后扩展和其他人合作的话 第一种好,因为分的细 好控制 好拆分 改写一个功能 不会影响其它功能
pinkdown 2020-07-08
  • 打赏
  • 举报
回复
第一个代码更合理
wangdong20 2020-06-22
  • 打赏
  • 举报
回复
第一种好一些,程序更容易扩展,可以定义抽象类有采矿。。那些方法接口,不同的类实现不同的汽车可以继承这个抽象类实现自己的采矿。。接口,程序更有扩展性
  • 打赏
  • 举报
回复
若是我,还是推荐走第一种写法。
天道酬勤/ 2020-06-16
  • 打赏
  • 举报
回复
第一种方法好
houhouhaozi 2020-06-15
  • 打赏
  • 举报
回复
2好,怎么少怎么来
丁劲犇 2020-06-14
  • 打赏
  • 举报
回复
不用太纠结。如果是做数据分析,用一次就不用的代码,那就在main里面胡乱写完就得了。 如果是自己用的,或是开源代码,考虑未来重用,那封装个类或者函数就好了,简单的工作倾向二,复杂的用一。 如果是闭源商业库,就复杂了,要考虑很多,楼上很多人都说了。
zhtoad 2020-06-14
  • 打赏
  • 举报
回复
第一种更合理 方法名, step101_采矿 ---将来扩展102,103 step201_做成原料 step301
冰科技 2020-06-14
  • 打赏
  • 举报
回复
第一种方法作用单一,分隔开,便于以后的更新和修改,第二种方法将所有用途放在一起,省时省力,减少空间的使用。若使用在程序中,可以先使用第一种方法进行试运行,如果能起作用,第二种方法的运行不出问题,在程序确定下来之后,就可以将第一种方法替换,减少编程语言的行数,便于阅读。
watsib 2020-06-12
  • 打赏
  • 举报
回复
择优第二,简便。
瑶山 2020-06-12
  • 打赏
  • 举报
回复
不考虑其他的单单是这些东西第二种简洁明了,如应用在复杂场景,每个功能有更多更具体的业务肯定是第一种,解耦,复用
荼蘼_ 2020-06-12
  • 打赏
  • 举报
回复
第一个吧 如果代码太多第二个挺让人头疼的 不过一般像第一个那样的我一般都是工具类用到
路口lyne 2020-06-12
  • 打赏
  • 举报
回复
一个函数只做好一件事。可以看看clean code这本书。
SilentHunter460 2020-06-11
  • 打赏
  • 举报
回复
引用 29 楼 Huang_Star 的回复:
这两种方法都不太靠谱,如果非要选择一个的话,第一个好点。为什么说不靠谱呢,因为造车最直接的可能就是组装零件。而原料的采集这已经不是直接联系了,还有出厂检查。这也不是造车环节。
你好。你说的应该是过度设计的问题,只要一个香蕉,却做出来一片森林和一只拿着香蕉的猩猩。 我想问的是设计模式,一段代码是分解成若干方法好,还是把这段代码全部丢在一个方法里面好。
weixin_48569898 2020-06-11
  • 打赏
  • 举报
回复
不错不错。。。。。。
Huang_Star 2020-06-11
  • 打赏
  • 举报
回复
这两种方法都不太靠谱,如果非要选择一个的话,第一个好点。为什么说不靠谱呢,因为造车最直接的可能就是组装零件。而原料的采集这已经不是直接联系了,还有出厂检查。这也不是造车环节。
锦秀北里 2020-06-11
  • 打赏
  • 举报
回复
不知道你说的每个方法不超20行是不是硬性要求,是的话那就没得说了,不是的话可以可以考虑。我们一般要求是一个方法里不超过200行都可以,还有一点是方法调用不可以超过3层,结构上讲1比较好吧,但是如果代码不多,做好注释,2也可以
硬核CPU123 2020-06-11
  • 打赏
  • 举报
回复
具体情况具体分析
加载更多回复(33)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧