一个C++程序重构的例子——糟糕的代码

本文通过一个C++影片出租程序的例子,展示了代码重构的重要性。原本的代码不符合面向对象原则,长函数承担过多职责。作者分析了代码的不足,包括难以应对需求变化、维护困难等问题,并提出了重构的必要性,旨在改善程序员的工作效率和代码质量。
摘要由CSDN通过智能技术生成

由于工作中常用c++的原因,在看《Refactoring — Improving the Design of Exsiting Code》这本书时,将java的例子写成了c++程序,略做总结,以深理解。

重构的习惯与思想,跟语言无关。但c++是一个难掌控的语言,记下这些优化改进,希望上进的c++ programmer们,能实现日积跬步,终至千里的梦想。

一、待优化的程序

程序描述:

(1)我们将优化的是一个影片出租用的小程序,该程序会记录每个顾客的消费金额并打印出来。

(2)程序输入为:顾客租的影片及对应的租期;程序的处理为:根据顾客租用影片时间及影片类型,计算费用;输出:打印消费单。

(3)影片有三种类型:普通影片、儿童影片及新上映影片。

(4)另外,模仿时下潮流,程序还提供了积分制度,为常客计算积分,积分会根据影片是否为新上映影片而不同。

程序代码如下:

// 影片类
class Movie
{
public:
	enum MovieType { 
		REGULAR = 0, CHILDREN, NEW_REALESE 
	};

	Movie(const string &title, int type)
	{
		m_title = title;
		m_type = type;
	}

	int GetType()
	{
		return m_type;
	}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值