我说话确实做不到四平八稳,更说不出什么心灵鸡汤。如果要比喻可能有点像辣椒酱,不管你喜不喜欢,这玩意可以帮助下饭。不多说,继续把代码风格这系列写完。
三、简化条件表达式和函数调用
条件语句要尽可能简单,分别用独立函数表示它们。
如果条件表达式根据对象类型不同而选择不同的行为,将这个条件表达式的每个分支放进一个子类内的覆写函数中,然后将原始函数声明为抽象函数。
将查询和修改函数分离
。在多线程系统中,赋值前通常需要完成检查。这个时候仍把查询修改分开,在建立一个新函数,调用各自独立的查询和修改函数,并声明为synchronized。如果未被声明为synchronized,应该将她们的可见范围限制在包级别或private级别。
尽量用函数,对象取代参数。比如常见的数值范围参数,可以用对象取代:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class
DateRange {
DateRange(Date start, Date end) {
_start = start;
_end = end;
}
Date getStart() {
return
_start;
}
Date getEnd() {
return
_end;
}
private
final
Date _start;
private
final
Date _end;
}
|
如果在创建对象时不仅仅是做简单的建构动作,将构造函数替换为工厂函数。
这样在派生子类的过程中,可以以工厂函数取代类型码。例如:
?
1
2
3
4
5
6
7
|
static
Employee create(String name) {
try
{
return
(Employee) Class.forName(name).newInstance();
}
catch
(Exception e) {
throw
new
IllegalArgumentException(
"Unable to instantiate"
+ name);
}
}
|
当调用者可以预先检查,不要用异常,而是做条件判断。
四、处理概况关系
当两个子类有相同的字段,或是有产生完全相同结果的函数,或是本体几乎一致的构造函数,将它们移至超类。
当若干客户使用类接口中的同一子集,或者两个类的接口有部分相同,将相同的子集提炼到一个独立接口中
。类之间彼此互用的方式有若干种:用到某类的所有责任区;只是用类责任区中的一个特定子集;需要与所有协助处理某些特定请求的类合作。对后两种情况,将真正用到的这部分责任分离通常很有意义。在java中可以利用接口实现上述需求。例如,TimeSheet类表示员工为客户工作的时间表,从中可以计算客户应该支付的费用,为了计算费用,TimeSheet需要知道员工级别即是否有特殊技能:
?
1
2
3
4
5
6
|
double
charge(Employee emp,
int
days) {
int
base - emp.getRate() * days
if
(emp.hasSpecialSkill())
return
base *
1.05
;
else
return
base;
}
|
我们可以针对员工技能级别定义一个接口:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
|
interface
Billable {
public
int
getRate():
public
boolean
hasSpecialSkill();
}
class
Employee
implements
Billable ...
double
charge(Billable emp,
int
days) {
int
base = emp.getRate() * days;
if
(emp.hasSpecialSkill())
return
base *
1.05
;
else
return
base;
}
|
如有一些子类,其中相应的某些函数以相同顺序执行类似的操作,将这些操作分别放进独立函数中,并保持他们都有相同的签名,于是原函数就变得相同了。然后将原函数上移至超类。
分享到:
相关推荐
### 如何写出优美的C代码 #### 面向对象的C编程实践 在软件开发领域,编写高质量、易于维护的代码是一项至关重要的技能。对于使用C语言进行开发的程序员来说,了解如何让代码更加优雅、高效尤为重要。尽管C语言...
### 如何写出优美的C代码 #### 基础知识 **结构体** 在C语言中,结构体是一个非常重要的概念,它允许开发者创建自定义的数据类型,这为实现复杂的数据结构提供了基础。例如,一个二维空间中的点可以用结构体表示...
标题和描述中的知识点聚焦于如何在单片机上编写出高效且优雅的C语言代码,这一主题对于嵌入式系统开发至关重要。以下是对标题、描述以及部分提供的内容中提到的知识点的详细阐述: ### 代码稳定性与隐患预防 在...
### 如何写出高效优美的C语言代码 在编程领域中,C语言因其高效性和灵活性而被广泛应用于系统软件开发、嵌入式系统以及各种高性能应用的编写中。然而,仅仅是让程序运行起来并不意味着代码质量达到了优秀的标准。...
写出高效优美的C语言代码.pdf
"Java源代码全集展示,最优美的代码"这个资源显然旨在为Java初学者和经验丰富的开发者提供一个全面的学习和参考平台,它包含了Java标准版(JavaSE)的所有核心概念和功能的示例代码。 在JavaSE中,我们首先会遇到...
在编写高效优美的单片机C语言代码时,有几个关键点是程序员需要注意的。首先,代码的稳定性至关重要,确保程序在...通过精心设计算法、数据结构,以及合理利用各种语言特性,可以编写出既稳定高效又易于维护的代码。
本压缩包“如何写出高效优美的C语言代码”为C语言爱好者提供了一套宝贵的资源,旨在帮助大家提升C语言编程的技能,写出既高效又优雅的代码。 一、理解C语言基础 首先,了解C语言的基本语法至关重要。这包括变量声明...
通过上述的方法和技巧,开发者可以在编写单片机程序时,写出既高效又优美的C语言代码。这些代码不仅能在单片机资源受限的环境下高效运行,还能在不同的硬件平台和编译器之间具有良好的兼容性和可移植性。最重要的是...
"如何写出优美的C语言代码" 本文主要介绍了如何写出优美的C语言代码,通过面向对象的思想来设计和实现C语言代码,提高代码的可读性和可维护性。文章首先介绍了结构体的概念,结构体是C语言提供给用户自己定制数据...
其次,【提前设计】和【少写代码】是实现优美代码的关键步骤。在动手编码之前,充分的设计和规划可以帮助减少冗余代码,保持代码结构清晰。当发现代码偏离初衷时,应及时停下,反思并调整,避免代码失控。使用代码...
在编程世界中,C语言以其高效、灵活和底层特性深受程序员喜爱。然而,编写出优美、易读且高效的...通过分析和学习这些示例,程序员可以更好地理解如何在自己的项目中实施这些最佳实践,从而写出更优美、更健壮的C程序。
《代码大全--代码之美》是一本专注于编程实践与代码质量的经典著作,它深入探讨了如何编写出高效、可读性强、易于维护的代码。...通过学习这些原则和技巧,开发者可以写出更优美的代码,从而实现代码的艺术之美。
3. **运算符**:C语言支持算术、关系、逻辑、位操作等多种运算符,理解它们的优先级和用法可以帮助写出更高效的代码。 4. **控制结构**:包括条件语句(if, if-else, switch-case)和循环(for, while, do-while)...