首页 > 基础资料 博客日记
通过一个简单的案例,来谈谈代码的重构
2024-07-12 11:30:02基础资料围观153次
Java资料网推荐通过一个简单的案例,来谈谈代码的重构这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣
上伪代码:
func a(){ ... order = ***; payOrder = new v1{orderNo=order.orderNo, amt=order.amt, remark='结算资金下发'}; //通过order得到v1; pay(payOrder) ; ... } func b(){ ... order = ***; payOrder = new v1{orderNo=order.orderNo, amt=order.amt, remark='结算资金下发'}; //通过order得到v1; pay(payOrder) ; ... } func pay(payOrder){ ... }
有同学一眼就看出了问题——重复代码。这同学给的重构方案如下。
func a(){ ... order = ***; foo(order); ... } func b(){ ... order = ***; foo(order); ... } func foo(order){ payOrder = new v1{orderNo=order.orderNo, amt=order.amt, remark='结算资金下发'}; //通过order得到v1; pay(payOrder) ; } func pay(payOrder){ ... }
如果是你,当如何进行重构?
没错,这段程序存在的问题是“存在重复代码”。我们在重构时,应以简单、清晰、易读、已维护为宗旨。能充分理解这一点,也并不容易,需要功力。
就像上面同学的重构方案那样,引入新的方法 foo,毋庸置疑达到了“消除重复”的目的,不过,这在一定程度上,增加了程序的复杂性。
许多同学,包括你,必然明白,下面是正确姿势。
本案是一个非常简单的程序重构案例。实际企业应用开发过程中,我们遇到的场景远比这个要复杂。以此为例,希望大家加强对代码重构的理解,从复杂的代码分析出条理,发现存在的问题,并进行更有效的重构。
func a(){ ... order = ***; pay(order); ... } func b(){ ... order = ***; pay(order); ... } func pay(order){ payOrder = new v1{orderNo=order.orderNo, amt=order.amt, remark='结算资金下发'}; //通过order得到v1; pay(payOrder) ; ... }
文章来源:https://www.cnblogs.com/buguge/p/18297959
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签: