java已被弱化签名,高效Java第四十条建议:谨慎设计方法签名

作用

有助于设计易于学习和使用的API。

如何做——谨慎地选择方法的名称

1.选择易于理解的,并且与同一个包中的其他名称风格一致的名称。

2.选择与大众认可的名称相一致的名称。

如何做——不要过于追求提供便利的方法

每个方法都应该尽其所能。

方法太多会使类难以学习、使用、文档化、测试和维护。

只有当一项操作被经常用到的时候,才考虑为它提供快捷方法。

如果不能肯定,还是不提供快捷方法为好。

如何做——避免过长的参数列表

目标是四个参数以内。

相同类型的长参数序列格外有害。

避免过长的参数列表——把方法分解成多个方法,每个方法只需要这些参数的一个子集

注意提升分解出的多个方法的正交性。

避免过长的参数列表——创建辅助类(helper class),用来保存参数的分组

如果一个频繁出现的参数序列可以被看作是代表了某个独特的实体,建议使用这种方法。

避免过长的参数列表——从对象构建到方法调用都采用Builder模式

如果方法带有多个参数,尤其是当它们中有些是可选的时候,最好定义一个对象来表示所有参数,并允许客户端在这个对象上进行多次“setter”调用,每次调用都设置一个参数,或者设置一个较小的相关的集合。

一旦设置了需要的参数,客户端就调用对象的“执行(execute)”方法,它对参数进行最终的有效性检查,并执行实际的计算。

其他建议

优先使用接口而不是类定义参数类型。

对于boolean参数,要优先使用两个元素的枚举类型。

9cd0d9f4332c

Thermometer.newInstance(TemperatureScala.CELSIUS)比Thermometer.newInstance(true)更有用,而且支持在未来对TemperatureScala对进行扩展。

枚举是可以有方法的,有时候这个特性也非常有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536633.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

phpexcel.php linux,phpexcel在linux系统报错如何解决

最近有个tp3.2的项目迁移到linux系统上了,突然有天发现原本在win server 2008上运行没问题的excel导出功能在新的系统上不能使用了。报错如下:说是1762行有问题,找到这个文件的代码看看:/*** Get an instance of this class** acc…

asp.net core系列 48 Identity 身份模型自定义

一.概述 ASP.NET Core Identity提供了一个框架,用于管理和存储在 ASP.NET Core 应用中的用户帐户。 Identity添加到项目时单个用户帐户选择作为身份验证机制。 默认情况下,Identity可以使用的 Entity Framework (EF) Core 数据模型。 本文介绍如何自定义…

oracle中创建游标,oracle 存储过程创建游标

Oracle与Sql Server差异点详解1、create函数或存储过程异同点Oracle 创建函数或存储过程一般是 create or replace ……SQL SERVER 则是在创建之前加一条语句,先判断是否已经存在,如果存在删除已有的函数或存储过程。函数语句:if exists (sel…

hosts文件不起作用

突然发现电脑的hosts文件不起作用了。之前用的狠正常,近期也没有修改过。首先排除什么格式、DNS、注册表之类的问题。最终解决办法(权限问题:有问题的hosts文件图标上有个锁):1.C:\Windows\System32\drivers\etc下复制…

oracle面临的挑战,未来数据库管理员面临的三大挑战

原标题:未来数据库管理员面临的三大挑战前言今天的数据库管理员面临着三大挑战:工作重心向以应用程序为中心转移、支持多个数据库平台的需求、在云端以及在本地管理数据库性能的责任不断扩大。为了在今天和未来都能站稳脚跟,数据库管理员需要…

打造汽车“安卓平台”,大众或亲手干掉传统汽车产业

干掉传统汽车产业的,很可能是大众,而不是特斯拉。 于无声处听惊雷。 2019年的日内瓦车展,看起来并没有传出太大的新闻。汽车世界的目光,依然被特斯拉的喧嚣所吸引。 然而,大众汽车展台上发生的一件看似不起眼的小事情&…

从 SPA 到 PWA:Web App的下一站在哪?

从AJAX(Asynchronous JavaScript XML,异步JavaScript和XML)开始, 尤其是 AngularJS 推出之后,SPA(Single Page App,单页应用)已经成为前端 App 的必选方案。 SPA 可以在客户端提供完…

Unable to resolve dependency问题解决

Unable to resolve dependency 是一个让我头疼的问题 之前总是阴差阳错调试好 但是也没有总结出来方法 但是今天找到了 方法来源 https://jingyan.baidu.com/article/19192ad8c489dfe53e5707ee.html 原因就是用户的gradle.properties 设置了代理,将文件内的代理注释…

计数排序与桶排序python实现

计数排序与桶排序python实现 计数排序 计数排序原理: 找到给定序列的最小值与最大值 创建一个长度为最大值-最小值1的数组,初始化都为0 然后遍历原序列,并为数组中索引为当前值-最小值的值+1 此时数组中…

JVM快速调优手册02:常见的垃圾收集器

2019独角兽企业重金招聘Python工程师标准>>> 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可…

linux运维平台工具,Linux运维自动化工具 Kickstart

简介:批量安装操作系统工具之 Kickstart ,RedHat 早前推出的产品( 不多说了,现在都玩 Cobbler 啦,见 http://www.linuxidc.com/Linux/2016-04/129977.htm )。测试环境:CentOS 6.6 x86_64 minimal一、安装软件包shell &…

PostgreSQL 并行查询概述

2019独角兽企业重金招聘Python工程师标准>>> PostgreSQL从9.6版本开始加入并行查询,并在PostgreSQL10和PostgreSQL11分别做了大量加强工作。下面从: 何时启用并行查询功能并行查询是如何工作的worker进程数量越多,查询性能越高吗三…

Quarkus:一个Kubernetes原生Java框架

Red Hat发布了Quarkus,这是一个为GraalVM和OpenJDK HotSpot量身定制的Kubernetes原生Java框架。Quarkus的目标是使Java成为Kubernetes和无服务器环境中的领先平台,为开发人员提供统一的反应式和命令式编程模型。 Quarkus利用Java开发人员使用的一系列库&…

linux scp传输文件命令

scp -r /opt/test root192.168.2.105:/opt 转载于:https://www.cnblogs.com/LynnChen/p/10620576.html

nginx能访问html静态文件但无法访问php文件

nginx.conf中红框部分修改成你的实际网站根目录转载于:https://www.cnblogs.com/IT-Crowd/p/10626549.html

linux mariadb 升级,linux mariadb

linux mariadb转载 一 安装下载mariaDB MariaDB-5.5.29-rhel5-x86_64-common.rpm 和MariaDB-5.5.29-rhel5-x86_64-server.rpm 包,MariaDB-5.5.29-rhel5-x86_64-client.rpm2.然后再http.//yum。mariadb。org/ 找到 RPM-GPG-KEY-MariaDB 这个PGP文件,把文件放入到/etc…

Linux Note

日期:2019/3/31 内容:Linux学习笔记 一、Linux命令 ls -l 操作效果 第一列:文件权限 一共10位。 01(r)2(w)3(x)4(r)5(w)6(x)7(r)8(w)9(x)文件类型文件所有者权限 usr权限,u权限文件所有者所属组成员的权限 group权限,g…

linux nginx F配置,linux下nginx的安装及配置

1、安装nginx前,咱们首先要确保系统安装了g、gcc、openssl-devel、pcre-devel和zlib-devel软件,可经过如图所示命令进行检测,若是以安装咱们能够经过图二所示卸载:linuxyum install gcc-cyum -y install zlib zlib-devel openssl openssl--de…

你缺啥,你缺一个得力的办公软件

其实你缺啥我都知道,但是,我又不能给你发工资,还得你自己努力工作才行。不过我可以给你分享几款好用的办公软件,对你在进行有效率的办公会有很大帮助的。曲奇办公是一款以文档为载体的企业办公管理应用。帮助企业快速实现业务标准…

C语言做一个表格的程序,用C语言画个简单表格

今天见到个题目,就把他做了,题目如下:在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)-------------|abc |xyztt|…