1.保持公共API的接口的不变。
如果随意更改公共接口的类名或者方法名,会造成无法向前兼容。如果需要更改方法名或者类名,则更建议定义一个全新的类。
2.减少依赖关系。像对象实例初始化之类的尽量由外部完成。实例则是通过外部传入
3.保持构造的简单性。
class Car {
private Driver driver;
Car(Context context) {
this.driver = context.getDriver();
}
}
想这种方式的构造则可能看不出神马大问题。但是更好的建议是:
构造改成
Car(Driver driver) {
this.driver = driver;
}
4.减少隐藏依赖或者全局状态
public void reserve() {
DBManager manager = new DBManager();
Listing 5.3 Law of Demeter violation
Listing 5.4 Global state in action
Writing testable code 75
manager.initDatabase();
Reservation r = new Reservation();
r.reserve();
}
在r对象内部可能通过某种方式访问到manager或者访问到manager的内部数据,但是这个时候manager是个全局的状态。如果多个对象同时对manager操作,比如有一个对象做了关闭操作。
更好的是
public void reserve() {
DBManager manager = new DBManager();
manager.initDatabase();
Reservation r = new Reservation (manager);
r.reserve();
}
5.有限使用组合而不是继承。
6.满足以上的条件后,推荐多态(实际上是更推荐接口编程)。
7.尽量保持驱动开发,注意驱动开发是可插入任何开发模型的,它不是独立存在的,不管敏捷还是RUP。
分享到:
相关推荐
在编程实践中,尤其是在 PHP 开发中,遵循一定的代码编写注意事项能显著提升代码的效率和可维护性。以下是一些关键的点,可以帮助你优化代码: 1. **利用内置函数**:PHP 提供了大量的内置函数,它们经过优化,执行...
《阿里巴巴开发代码规约》是阿里巴巴为提升代码质量和团队协作效率而制定的一套编码规范,它涵盖了Java、JavaScript等主流编程语言,旨在提高代码可读性、可维护性,并降低项目风险。本规约不仅对代码格式有严格规定...
2. **注释规范**:注释是代码的解释器,应清晰地说明代码的功能、用法和注意事项。函数和类的开头应有详细的多行注释,描述其功能、参数和返回值。单行注释推荐使用`//`而非`/* */`,避免产生嵌套注释。 3. **代码...
本文将深入探讨LUA开发中应遵循的关键规范,从命名惯例、文件组织、代码结构到最佳实践,全方位解析LUA开发需要注意的地方,帮助开发者写出高质量、高性能的LUA代码。 #### 一、命名惯例 1. **小写字母命名**:...
阿里Java开发代码规范插件是针对Java开发人员的利器,旨在提升代码质量,遵循一致性、可读性和可维护性原则。这款插件适用于两大主流Java集成开发环境:IntelliJ IDEA和Eclipse,使得开发者在编码过程中能实时检查并...
完全功能的综合地方门户网站正式版,市县级地方门户网站源码,免费的信息港网站整站程序,地方门户信息网站源代码,地方门户网站管理系统商业版下载,地方门户网站模板,地方分类信息门户网站下载,信息港整站网站源码,...
ABAP 开发中有一些小规则和注意点需要遵守,以提高编程效率和代码质量。下面是 ABAP 开发中的一些小规则和注意点: 1. 在 REPORT 上面的注释中写创建人、创建时间、目的。 2. 锁定:所有表都是存放在透明表中,...
在本文中,我们将深入探讨由C#编程语言编写的三子棋游戏的源代码,以及在实现这样的项目时需要注意的关键点。三子棋,也称为井字游戏或Noughts and Crosses,是一个简单但有趣的两人对弈游戏,通常在3x3的棋盘上进行...
《Delphi实例开发教程》源代码包说明 __________________________________________________________________ (一)源代码程序包内容: 源代码程序包的目录结构如下: \(根目录) | |————Readme.txt(说明...
最后需要指出的是SubSonic3.0插件目前不支持括号嵌套功能,有双层括号时会给解释成多个单括号,甚至出错,所以大家添加查询条件时要注意这一点,等以后有时间再研究一下代码,看能否加上括号嵌套功能。还有使用In...
本文将详细讲解Android应用国际化的实现方式以及在开发过程中需要注意的关键点。 首先,Android应用的国际化主要依赖于资源文件的管理。在项目的res目录下,创建一个名为values的文件夹,用于存放默认的语言资源。...
它允许开发者自定义规则,用于检测潜在的错误和不符合编码规范的地方,同时通过配置可以集成Prettier,实现代码格式化和错误检查的双重效果。 在HTML排版方面,也有诸如Prettier HTML插件或者HTML-CSS-JS Prettify...
2. **适度使用**:尽管自动化能提高效率,但过度依赖代码生成可能导致代码质量下降,因此在适合的地方使用CodeEngine。 3. **持续更新和优化**:随着项目的进展,可能需要定期更新和优化模板,以适应项目的变化。 ...
标题中的“地方二手房产信息门户网站源代码”是指一套用于构建地方性的、专注于二手房交易的互联网平台的编程代码。这类源代码通常包含多个功能模块,旨在为用户提供发布房源信息、搜索房源、在线沟通、预约看房等...
【aspcms 企业网站程序开源代码二次开发详解】 在当今互联网时代,企业网站作为企业形象展示和业务拓展的重要平台,其开发技术日新月异。aspcms 企业网站程序以其开源、灵活的特点,备受开发者青睐。"aspcms 企业...
【.NET开发项目代码】是针对使用.NET框架进行软件开发的程序员们提供的参考资料。这个压缩包包含了一系列与.NET项目相关的源码和辅助文件,旨在帮助开发者理解和实现特定功能。.NET是一个由微软推出的开放源代码平台...
然而,需要注意的是,虽然自动化工具能节省时间,但并不能完全取代人工审查和优化代码的过程。生成的代码可能需要根据具体业务需求进行调整,以确保代码质量和性能。 总的来说,"简答Postgresql数据库代码生成器"是...
此外,理解版本控制工具(如Git)的使用也至关重要,以便进行团队协作和代码管理。 二、单据开发 在NC65中,单据是处理业务数据的核心。开发者需要掌握如何创建、编辑和管理各种类型的业务单据,如采购订单、销售...
值得注意的地方是,C#生成的可执行文件必须是32位,否则无法正常加载DLL文件. 经常使用的函数在工程中已经定义并使用.WTOPCSVRDLL使用说明中文.doc中,介绍的是VB中WtOPCSvr的使用方法.大家可以把VB的转变成C#的.我的...