第40条:谨慎设计方法签名

1.谨慎地选择方法的名称。遵循标准的命名习惯。

2.不过于追求提供便利的方法。方法太多会使类难以学习、使用、文档化、测试和维护。

3.避免过长的参数列表。目标是四个参数以下。

缩短参数列表的方法:

(1)把方法分解成多个方法,可能会导致方法过多, 通过提升方法正交性,可以减少方法数目。java.util.List接口,它没有提供在子列表中查找元素第一个索引和最后一个索引的方法,这个两个方法需要三个参数,它提供了subList方法,需要两个参数,还有indexOf和lastIndexOf方法,需要一个参数。而且subList方法可以与其他针对List实例进行操作的方法结合起来,在子列表上执行任意的计算,这样得到的API具有很高的功能重量比。

(2)创建辅助类,用来保存参数的分组,一般是静态成员类。

(3)采用Builder模式,如果方法带多个参数,尤其是有些是可选的时候,定义一个对象表示所有参数,并允许客户端在对象上进行多次setter调用,每次调用设置一个参数,一旦设置了需要的参数,调用执行方法。

4.对于参数类型,要优先使用接口而不是类。

5.对于boolean参数,要优先使用两个元素的枚举类型,使代码更容易阅读和编写。

时间: 2024-10-08 22:52:57

第40条:谨慎设计方法签名的相关文章

第四十条:谨慎设计方法签名

先明确:方法签名由方法名称和一个参数列表(方法的参数的顺序和类型)组成,不包括返回值类型. 谨慎的选择方法的名称. 不要对于追求提供便利的方法. 避免过长的参数列表.目标是四个参数,或者更少. 有三种方法可以缩短过长的参数列表: 1.把过长参数列表的方法分解成多个方法,每个方法只需要这些参数的一个子集. 2.创建辅助类,用来保存参数的分组,这些成员类一般是静态成员类.如果一个频繁出现的参数序列可以被看作是代表了某个独特的实体,则建议 使用这种方法. 3.从对象构建到方法使用都使用Builder模

【代码优化】方法签名及参数检查

参数检查: 绝大多数方法的构造器对于传递给它的参数值会有某些限制.例如,索引值必须是非负数,对象不能 为null等等. 如果传递无效参数给方法,在执行前没对参数进行检查,该方法可能在处理过程中失败,并且产生令 人费解的异常.更糟的是,该方法可以正常返回数据.但是会得到一个错误的结果,你还认为是正确的, 没发现其中的倪端. 所以对于方法参数的检查是有必要的. 常见的几个错误,IllegalArgumentException,IndexOutOfBoundsException和NullPointEx

对Android开发者有益的40条优化建议

下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激励你,因为你在保持不断迭代,不经意中你学到了很多.然而,当你发布应用时你还要做一些更深入的事情. 从一些可正常工作的代码到一个可怕的应用程序是一个巨大的跳跃,相比iOS平台Android更是如此 .当在iOS上发布应用时只是在一个设备上跳跃–你的手机–对很多设备而言都很相似–同样大小的屏幕,都有很好

软件测试实战 - 测试用例设计方法

一.测试分析 测试需求来源 开发需求DR:协议标准需求PR:用户需求UR:案例库需求LR:竞争需求CR:继承需求SR: 2. 测试项分析步骤 a. 为分析的测试项编号:b. 注明来源:开发文档/法律条款/案例库编号c. 整合测试项:删除合并重复测试项:大的测试项分解为测试子项:d. 分析测试项之间的关系: 3. 测试分析方法 a. 质量模型分析法:功能测试项.效率测试项.可靠性.易用性.可维护性.可移植性:b. 用户场景分析法:游客.普通用户.VIP用户.管理员用户等,不同角色权限不同,测试点也

对 Android 开发者有益的 40 条优化建议

英文原文:40 Developer Tips for Android Optimization 下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow,Google,百度(虽然本人不是很认可百度,不过确实是国内用百度的确能够解决很多问题了)解决问题 对每个你像添加的特征重复上述过程.这种方法能够激励你,因为你在保持不断迭代,不经意中你学到了很多.然而,当你发布应用时你还要做一些更深入的事情. 从一些可正常工作

成长系统的设计方法:如何“挖坑”,又不让玩家反感

原文地址:http://bbs.gameres.com/thread_330212.html 游戏类型:  设计类型:[系统/框架/思路/玩法] 成长系统的设计方法 目录 成长系统的设计方法.....................................1 一.坑的使用方式.........................................4 1.时效性..............................................4 2.获取方式......

第20条:为私有方法名加前缀

本条要点:(作者总结) 给私有方法的名称加上前缀,这样可以很容易地将其同公共方法区分开. 不要单用一个下划线做私有方法的前缀,因为这样做法是预留给苹果公司用的. 一个类所做的事情通常都要比从外面看到的更多.编写类的实现代码时,经常要写一些只在内部使用的方法.笔者建议,应该为这种方法的名称加上某些前缀,这有助于调试,因为据此很容易就能把公共方法和私有方法区别开. 为私有方法名加前缀还有个原因,就是便于修改方法名或方法签名.对于公共方法来说,修改其名称或签名之前要三思,因为类的公共 API 不便随意

中小型网络系统总体规划与设计方法(一)

一,基于网络的信息系统基本结构 一个基于网络的信息系统基本结构它应该包括网络运行环境.网络系统.网络操作系统,以及基于网络操作系统 的网络数据库管理系统.网络软件开发工具与网络应用系统.同时,设计完备的系统还应有保证系统安全的网络安全 系统与保证网络正常运行的网络管理系统.如下图所示: (1)网络运行环境 网络运行环境是指保障网络系统安全.可靠与正常运行所必需的基本设施与设备条件.它主要包括机房与电源两个部分. (2)网络系统 支持信息系统的网络包括网络传输基础设施.网络设备两部分. (3)网络

成长系统的设计方法

转自:http://www.gameres.com/330212.html 目录 成长系统的设计方法.....................................1 一.坑的使用方式.........................................4 1.时效性..............................................4 2.获取方式...........................................4 3.举例说明