最近在读《重构:改善既有代码的设计》,因为自己看了之前的一些代码,确实写的非常糟糕,虽然能运行,但就是很长也很乱。后来听说了这本书,当时浏览了下电子版就已经获益良多。但我还是觉得这种书籍还是要我慢慢的翻来看,所以还是弄了本纸质版的来看。也开始慢慢的将书里的一些东西实践起来。把一些从里面用到的一些例子给记录下来。这对于我开始意识到要对代码进行整理的人来说,确实是有很大的帮助,虽然只是一些很小地方的修改,但也确实这些小修小补在过段时间后我再看的时候,能帮我更好地理解当时的一些意思。也节省了一些时间。
同时学到了后,以后在开发的时候也可以直接就用上了,就某种程度上减少了重构。
1.有明确意义的代码:
e.g.在订单详情里,都要有订单状态这么一个东西需要去区分,那么我当时是这样写的,那么这个导致我有时候其它地方用到了,我要在回来查,或者我经常要去看这个订单状态所代表的值是什么。
if (orderStatus == 1) { } //待发货 else if (orderStatus == 2) { } //待收货 else if (orderStatus == 3) { }后来我就改成了用常量来表示。 if (orderStatus == Constant.WAIT_SURE) { } //待发货 else if (orderStatus == Constant.TO_SEND) { } //待收货 else if (orderStatus == Constant.TO_GET) { }2.将有关联的代码放在一起:最近在做一个二维码的生成规则,建了一个实体类,然后在需要的Activity里和不同的情况下,写了拼接二维码的语句,这样就导致了自己需要重复地写代码,只是因为情况和位置不同而已。这也是一个习惯吧,因为公司里都是用实体类来做数据的读写,还没有说在里面用方法,所以也没有那个意识,也是看了这本书后一天早上突然想到可以这样写。
public class RootBusinessQRData implements Serializable{ PRivate String storeId; private String money; private String LogoHeader; private String storeName; private String goodsid; private String rebateProportion; public String getRebateProportion() { return rebateProportion; } public void setRebateProportion(String rebateProportion) { this.rebateProportion = rebateProportion; } public String getStoreId() { return storeId; } public void setStoreId(String storeId) { this.storeId = storeId; } public String getMoney() { return money; } public void setMoney(String money) { this.money = money; } public String getLogoHeader() { return LogoHeader; } public void setLogoHeader(String LogoHeader) { this.LogoHeader = LogoHeader; } public String getStoreName() { return storeName; } public void setStoreName(String storeName) { this.storeName = storeName; } public String getGoodsid() { return goodsid; } public void setGoodsid(String goodsid) { this.goodsid = goodsid; }}所以就改成了:public class RootBusinessQRData implements Serializable{ private String storeId; private String money; private String LogoHeader; private String storeName; private String goodsid; private String rebateProportion; public String getRebateProportion() { return rebateProportion; } public void setRebateProportion(String rebateProportion) { this.rebateProportion = rebateProportion; } public String getStoreId() { return storeId; } public void setStoreId(String storeId) { this.storeId = storeId; } public String getMoney() { return money; } public void setMoney(String money) { this.money = money; } public String getLogoHeader() { return LogoHeader; } public void setLogoHeader(String LogoHeader) { this.LogoHeader = LogoHeader; } public String getStoreName() { return storeName; } public void setStoreName(String storeName) { this.storeName = storeName; } public String getGoodsid() { return goodsid; } public void setGoodsid(String goodsid) { this.goodsid = goodsid; } /** * 创建二维码 * @return */ public String createQRCodeString(){ return spliceQRCode(); } /** * 拼接二维码字符串 * @return */ private String spliceQRCode(){ return "{/"storeId/":" + getStoreId() + ",/"money/":" + getMoney() +",/"LogoHeader/":"+ getLogoHeader() + ",/"storeName/":" + getStoreName() + ",/"goodsid/":"+ getGoodsid() + ",/"rebateProportion/":" + getRebateProportion() + "}" ; }}待续......
新闻热点
疑难解答