Replace Error Code with Exception(以异常取代错误码)

某个函数返回一个特定的代码,用来表示某种错误情况

public int withdraw(int amount) {
	if (amount > balance) {
		return -1;
	} else {
		balance -= amount;
		return 0;
	}
}

重构:改用异常

public int withdraw(int amount) {
	if (amount > balance) {
		throw new BalanceException("余额不足。");
	} 
	balance -= amount;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设我们现在有一个图形类,其中包含了三种不同类型的图形:矩形、圆形和三角形。这个类使用一个整型变量来表示图形的类型,我们需要使用Replace Type Code with Classes重构手法来改善这个类的设计。 重构前的代码如下: ```c enum ShapeType { Rectangle, Circle, Triangle }; struct Shape { enum ShapeType type; double width; double height; double radius; double base; double height; }; void drawShape(struct Shape* shape) { switch (shape->type) { case Rectangle: // draw rectangle break; case Circle: // draw circle break; case Triangle: // draw triangle break; } } ``` 重构后的代码如下: ```c struct Shape { double width; double height; double radius; double base; double height; }; struct Rectangle { struct Shape shape; }; struct Circle { struct Shape shape; }; struct Triangle { struct Shape shape; }; void drawShape(struct Shape* shape) { // draw shape } void drawRectangle(struct Rectangle* rectangle) { drawShape(&(rectangle->shape)); } void drawCircle(struct Circle* circle) { drawShape(&(circle->shape)); } void drawTriangle(struct Triangle* triangle) { drawShape(&(triangle->shape)); } ``` 通过Replace Type Code with Classes重构手法,我们将图形类分成了三个子类,分别表示矩形、圆形和三角形,每个子类都包含了一个Shape结构体,用来表示图形的属性。同时,我们将原来的drawShape函数拆分成了三个函数,用来分别绘制不同类型的图形。这样做的好处是,可以使代码更加模块化、易于扩展和维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值