`
lovecontry
  • 浏览: 1095057 次
文章分类
社区版块
存档分类
最新评论

如何写出优美的代码

 
阅读更多

 

我说话确实做不到四平八稳,更说不出什么心灵鸡汤。如果要比喻可能有点像辣椒酱,不管你喜不喜欢,这玩意可以帮助下饭。不多说,继续把代码风格这系列写完。

三、简化条件表达式和函数调用

条件语句要尽可能简单,分别用独立函数表示它们。

如果条件表达式根据对象类型不同而选择不同的行为,将这个条件表达式的每个分支放进一个子类内的覆写函数中,然后将原始函数声明为抽象函数。

将查询和修改函数分离 。在多线程系统中,赋值前通常需要完成检查。这个时候仍把查询修改分开,在建立一个新函数,调用各自独立的查询和修改函数,并声明为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;
}

如有一些子类,其中相应的某些函数以相同顺序执行类似的操作,将这些操作分别放进独立函数中,并保持他们都有相同的签名,于是原函数就变得相同了。然后将原函数上移至超类。

0
2
分享到:
评论

相关推荐

    如何写出优美的C代码

    ### 如何写出优美的C代码 #### 面向对象的C编程实践 在软件开发领域,编写高质量、易于维护的代码是一项至关重要的技能。对于使用C语言进行开发的程序员来说,了解如何让代码更加优雅、高效尤为重要。尽管C语言...

    如何写出优美的c代码

    ### 如何写出优美的C代码 #### 基础知识 **结构体** 在C语言中,结构体是一个非常重要的概念,它允许开发者创建自定义的数据类型,这为实现复杂的数据结构提供了基础。例如,一个二维空间中的点可以用结构体表示...

    如何写出高效优美的单片机C语言代码

    标题和描述中的知识点聚焦于如何在单片机上编写出高效且优雅的C语言代码,这一主题对于嵌入式系统开发至关重要。以下是对标题、描述以及部分提供的内容中提到的知识点的详细阐述: ### 代码稳定性与隐患预防 在...

    如何写出高效优美的C语言代码

    ### 如何写出高效优美的C语言代码 在编程领域中,C语言因其高效性和灵活性而被广泛应用于系统软件开发、嵌入式系统以及各种高性能应用的编写中。然而,仅仅是让程序运行起来并不意味着代码质量达到了优秀的标准。...

    写出高效优美的C语言代码.pdf

    写出高效优美的C语言代码.pdf

    Java源代码全集展示,最优美的代码

    "Java源代码全集展示,最优美的代码"这个资源显然旨在为Java初学者和经验丰富的开发者提供一个全面的学习和参考平台,它包含了Java标准版(JavaSE)的所有核心概念和功能的示例代码。 在JavaSE中,我们首先会遇到...

    如何写出高效优美的单片机C语言代码?

    在编写高效优美的单片机C语言代码时,有几个关键点是程序员需要注意的。首先,代码的稳定性至关重要,确保程序在...通过精心设计算法、数据结构,以及合理利用各种语言特性,可以编写出既稳定高效又易于维护的代码。

    如何写出高效优美的C语言代码.rar

    本压缩包“如何写出高效优美的C语言代码”为C语言爱好者提供了一套宝贵的资源,旨在帮助大家提升C语言编程的技能,写出既高效又优雅的代码。 一、理解C语言基础 首先,了解C语言的基本语法至关重要。这包括变量声明...

    如何写出高效优美的单片机C语言代码.pdf

    通过上述的方法和技巧,开发者可以在编写单片机程序时,写出既高效又优美的C语言代码。这些代码不仅能在单片机资源受限的环境下高效运行,还能在不同的硬件平台和编译器之间具有良好的兼容性和可移植性。最重要的是...

    如何写出优美的C语言代码

    "如何写出优美的C语言代码" 本文主要介绍了如何写出优美的C语言代码,通过面向对象的思想来设计和实现C语言代码,提高代码的可读性和可维护性。文章首先介绍了结构体的概念,结构体是C语言提供给用户自己定制数据...

    优美代码力作

    其次,【提前设计】和【少写代码】是实现优美代码的关键步骤。在动手编码之前,充分的设计和规划可以帮助减少冗余代码,保持代码结构清晰。当发现代码偏离初衷时,应及时停下,反思并调整,避免代码失控。使用代码...

    C程序优美的代码 值得大家学习借鉴

    在编程世界中,C语言以其高效、灵活和底层特性深受程序员喜爱。然而,编写出优美、易读且高效的...通过分析和学习这些示例,程序员可以更好地理解如何在自己的项目中实施这些最佳实践,从而写出更优美、更健壮的C程序。

    代码大全--代码之美

    《代码大全--代码之美》是一本专注于编程实践与代码质量的经典著作,它深入探讨了如何编写出高效、可读性强、易于维护的代码。...通过学习这些原则和技巧,开发者可以写出更优美的代码,从而实现代码的艺术之美。

    C 语言源代码优美的列出

    3. **运算符**:C语言支持算术、关系、逻辑、位操作等多种运算符,理解它们的优先级和用法可以帮助写出更高效的代码。 4. **控制结构**:包括条件语句(if, if-else, switch-case)和循环(for, while, do-while)...

Global site tag (gtag.js) - Google Analytics