谨慎设计方法签名(40)
2019独角兽企业重金招聘Python工程师标准>>>
本条目是若干API 设计技巧的总结:
1、谨慎选择方法的名称
- 始终遵循标准的命名习惯
- 易于理解,与同包的其他名称保持一致风格
- 选择大众认可名称相一致的名称,参见 java 类库 api
2、不要过于追求提供便利的方法
- 每个方法尽其所能,方法太多增加学习、使用、文档化、测试和维护的难度
- 只有一项操作被经常使用时,才考虑提供便捷方式;否则,不提供为好
3、避免过长参数列表
- 目标是四个参数,或者更少
- 相同类型长参数危害格外大,使用者顺序搞错后,仍能编译通过(运行时暴漏错误,不易排查)
4、有三种方法可以缩短参数列表
(1)把方法分解成多个方法,每个方法参数仅仅是参数列表子集
- 一不小心,会导致方法数量过多
- 多提炼公共子方法
(2)创建辅助类用来保存参数分组
- 辅助类一般是静态成员类
- 对于频繁出现的参数序列,可以被看做是作为某个独特实体,建议使用辅助类
(3)结合前两种,使用Builder(建造者)模式
- 详情参看建造者设计模式
5、对于参数类型优先使用接口,而不是类
- 比如应该使用Map 做参数而不是 HashMap等实现类
- 方便以后扩展
6、对于Boolean 参数,优先使用两个参数的 枚举类型
- 代码更加易于阅读和编写
转载于:https://my.oschina.net/u/3847203/blog/1839749
谨慎设计方法签名(40)相关推荐
- java已被弱化签名,高效Java第四十条建议:谨慎设计方法签名
作用 有助于设计易于学习和使用的API. 如何做--谨慎地选择方法的名称 1.选择易于理解的,并且与同一个包中的其他名称风格一致的名称. 2.选择与大众认可的名称相一致的名称. 如何做--不要过于追求 ...
- Effective-Java 仔细设计方法签名
51. 仔细设计方法签名 这一条目是 API 设计提示的大杂烩,但它们本身并足以设立一个单独的条目.综合起来,这些设计提示将帮助你更容易地学习和使用 API,并且更不容易出错. 仔细选择方法名名称.名 ...
- 实战小课 | 深入剖析 「事件设计方法与规范」,夯实数据分析基础!
神策数据立足于"重构中国互联网数据根基",凭借已有的 1000 + 家付费企业的服务和成功实践经验,开辟线下活动"神策数据实战学堂",以数据驱动为主题聚焦不同热 ...
- 界面设计方法 (2) — 4.界面设计的原则与标准
前面介绍了5种基本的界面形式,如果从构成界面的要素(构件)层面看,实际上所有的界面都是一样的,因为它们都是由同样的控件构成的,只是控件的位置不同而已,因此就有必要对界面的布置进行统一的标准化,建立了界 ...
- 三级网络技术_中小型网络系统总体规划与设计方法
一.考点分析 本章在考试中一般出现3个选择题. 考点1:路由器技术指标 考点2:网络系统分层设计(上下级之比.核心层设计) 考点3:交换机技术指标(总带宽计算方法) 考点4:网络服务器性能(系统高可用 ...
- 写出一下Java方法对应的签名_Java中的方法签名是否包含其返回类型?
Java类/接口中的方法签名是否包括其返回类型? 例: Java是否知道这两种方法之间的区别: public class Foo { public int myMethod(int param) { ...
- 基于MIission planner的VTOL垂直起降固定翼航线设计方法
基于MIission planner的VTOL垂直起降固定翼航线设计方法 在此感谢 作者 ID:小明 QQ:1228401538提供的文档帮助资料 航线设计方法一: 1. 连接飞机之前需要做的工作 1 ...
- 测试用例设计方法(2)
https://www.cnblogs.com/molrang/p/6420918.html 转载 本篇由本人整理黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界 ...
- 测试用例设计方法(转)
本篇由本人整理黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法.场景图法等. (一)等价类划分 ...
最新文章
- gitzip没有作用以及github如何下载单个文件或目录
- VC字体安装相关方法总结
- 远程桌面连接“发生身份验证错误。 无法连接到本地安全机构”解决方法
- Android StateFlow详解
- s7.net 写数据到plc_西门子1200复位PLC、欧姆龙常见问题解答
- 如果误删谷歌浏览器的书签,怎么恢复
- Android自定义控件学习(一)-----属性
- Bootstrap3.0入门学习系列规划[持续更新]
- 数据结构 2-0 线性表总结
- 智能车学习(一)—— 硬件准备
- .net模式子窗口传值给父窗口
- 续费Namecheap域名教程附如何便宜续费域名方法
- 反相器有时候为了强调低电平有效,将反相器的图形符号中的小圆圈画在输入端,如数电中的画法。有时候小圆圈在前面只表示低电平有效,没有反相的意思,例如与非门组成的RS触发器
- java 注解 @Deprecated
- 都市丽人“正青年”设计大赛结果出炉 感召中国新生设计力量
- 树莓派安装Ubuntu系统详细过程
- JAVA程序开发参考手册
- K8S之taint\cordon\uncordon\drain使用案例——筑梦之路
- 黑马Redis学习——实战篇(4)
- 优先级队列PriorityQueue
热门文章
- mysql间隙锁触发条件,详解系列文章
- jdk-14.0.2_linux-x64_bin.tar.gz
- 计算机中¥符号按哪个键,在电脑设计中人民币¥这个符号咋弄出来
- ui自动化测试框架_自动化测试框架--Instrumentation
- python计算2的20次方_Python学习二运算符
- delphi连接mysql不用添加dsn_jsp中有没有像asp的非DSN连接数据库方法呢?(20分)
- python教案 md文件_python操作pdf文件.md
- 让vue文件直接在浏览器中运行
- 等长子网划分、变长子网划分(网络整理)
- 2021年南菁高中高考成绩查询,2021年无锡高考各高中成绩及本科升学率数据排名及分析...