Tennis-Refactoring-Kata 教程

Tennis-Refactoring-Kata 教程

Tennis-Refactoring-KataThis is a Refactoring Kata based on the rules of Tennis项目地址:https://gitcode.com/gh_mirrors/te/Tennis-Refactoring-Kata

项目介绍

Tennis-Refactoring-Kata 是一个基于网球规则的重构练习项目。该项目旨在帮助开发者通过实际的代码重构练习,提升他们的重构技能和代码质量。项目提供了初始代码和测试用例,开发者需要在不改变程序行为的前提下,对代码进行重构,使其更加简洁、可读和可维护。

项目快速启动

克隆项目

首先,克隆项目到本地:

git clone https://github.com/emilybache/Tennis-Refactoring-Kata.git
cd Tennis-Refactoring-Kata

安装依赖

根据项目使用的编程语言,安装相应的依赖。例如,如果是 Java 项目,可以使用 Maven 安装依赖:

mvn install

运行测试

运行测试用例以确保初始代码功能正常:

mvn test

开始重构

打开项目中的 TennisGame1.java 文件,开始进行重构。以下是一个简单的重构示例:

// 原始代码
public class TennisGame1 implements TennisGame {
    private int m_score1 = 0;
    private int m_score2 = 0;
    private String player1Name;
    private String player2Name;

    public TennisGame1(String player1Name, String player2Name) {
        this.player1Name = player1Name;
        this.player2Name = player2Name;
    }

    public void wonPoint(String playerName) {
        if (playerName.equals("player1"))
            m_score1 += 1;
        else
            m_score2 += 1;
    }

    public String getScore() {
        String score = "";
        int tempScore = 0;
        if (m_score1 == m_score2) {
            switch (m_score1) {
                case 0:
                    score = "Love-All";
                    break;
                case 1:
                    score = "Fifteen-All";
                    break;
                case 2:
                    score = "Thirty-All";
                    break;
                default:
                    score = "Deuce";
                    break;
            }
        } else if (m_score1 >= 4 || m_score2 >= 4) {
            int minusResult = m_score1 - m_score2;
            if (minusResult == 1) score = "Advantage player1";
            else if (minusResult == -1) score = "Advantage player2";
            else if (minusResult >= 2) score = "Win for player1";
            else score = "Win for player2";
        } else {
            for (int i = 1; i < 3; i++) {
                if (i == 1) tempScore = m_score1;
                else { score += "-"; tempScore = m_score2; }
                switch (tempScore) {
                    case 0:
                        score += "Love";
                        break;
                    case 1:
                        score += "Fifteen";
                        break;
                    case 2:
                        score += "Thirty";
                        break;
                    case 3:
                        score += "Forty";
                        break;
                }
            }
        }
        return score;
    }
}

// 重构后的代码
public class TennisGame1 implements TennisGame {
    private int player1Score = 0;
    private int player2Score = 0;
    private String player1Name;
    private String player2Name;

    public TennisGame1(String player1Name, String player2Name) {
        this.player1Name = player1Name;
        this.player2Name = player2Name;
    }

    public void wonPoint(String playerName) {
        if (playerName.equals("player1"))
            player1Score += 1;
        else
            player2Score += 1;
    }

    public String getScore() {
        if (player1Score == player2Score) {
            return getEqualScore(player1Score);
        } else if (player1Score >= 4 || player2Score >= 4) {
            return getAdvantageOrWinScore(player1Score, player2Score

Tennis-Refactoring-KataThis is a Refactoring Kata based on the rules of Tennis项目地址:https://gitcode.com/gh_mirrors/te/Tennis-Refactoring-Kata

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓬为宜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值