首页 > 系统 > Android > 正文

读《重构》后在android里的一些应用

2019-11-06 09:48:56
字体:
来源:转载
供稿:网友

最近在读《重构:改善既有代码的设计》,因为自己看了之前的一些代码,确实写的非常糟糕,虽然能运行,但就是很长也很乱。后来听说了这本书,当时浏览了下电子版就已经获益良多。但我还是觉得这种书籍还是要我慢慢的翻来看,所以还是弄了本纸质版的来看。也开始慢慢的将书里的一些东西实践起来。把一些从里面用到的一些例子给记录下来。这对于我开始意识到要对代码进行整理的人来说,确实是有很大的帮助,虽然只是一些很小地方的修改,但也确实这些小修小补在过段时间后我再看的时候,能帮我更好地理解当时的一些意思。也节省了一些时间。

同时学到了后,以后在开发的时候也可以直接就用上了,就某种程度上减少了重构。

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()                + "}" ;    }}

待续......


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表