重构重构:第一个案例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重构重构:第一个案例相关的知识,希望对你有一定的参考价值。

【起点】

影片类

// 简单的纯数据类
public class Movie {
    public static final int CHILDREN = 2;
    public static final int REGULAR = 0;
    public static final int NEW_RELEASE = 1;

    private String _title;
    private int _priceCode;

    public Movie(String title, int priceCode) {
        _title = title;
        _priceCode = priceCode;
    }

    public String getTitle() {
        return _title;
    }

    public int getPriceCode() {
        return _priceCode;
    }

    public void set_title(String _title) {
        this._title = _title;
    }
}

租赁类

// 表明某个顾客租了一部影片
public class Rental {
    private Movie _movie;
    private int _daysRent;

    public Rental(Movie movie, int daysRent) {
        _movie = movie;
        _daysRent =daysRent;
    }

    public Movie getMovie() {
        return _movie;
    }

    public int getDaysRent() {
        return _daysRent;
    }
}

顾客类

import java.util.Vector;

public class Customer {
    private String _name;
    private Vector _rentals = new Vector();

    public Customer(String name) {
        _name = name;
    }

    public void addRental(Rental arg) {
        _rentals.addElement(arg);
    }

    public String getName() {
        return _name;
    }
}

 

【重构的第一步】

【分解并重组Statement】

【运用多态(polymorphism)取代与价格相关的条件逻辑】

【结语】

 

以上是关于重构重构:第一个案例的主要内容,如果未能解决你的问题,请参考以下文章

第1章 重构,第一个案例:运用多态取代switch

如何重构这个 Java 代码片段

《重构》--读书笔记

第1章 重构,第一个案例:分解并重组statement函数

《重构》--读书笔记

我的重构第一步