code review过程中,看到这样的代码:
Pair<String, String> getFooAndBar() {
...
}
恶魔说,弄个Pair来表达FooAndBar不太容易理解,要不干脆弄个类把foo和bar封装起来,返回出来吧。
天使:“同意”。
下一版代码:
class FooAndBar {
private final String foo;
private final String bar;
FooAndBar(String foo, String bar) {...}
public String getFoo() {
return foo;
}
public String getBar() {
return bar;
}
}
嗯。恶魔不爽了。这个FooAndBar纯粹就是为了从函数里面返回几个有逻辑关系的值的组合。它不是public,也没有工具要用java bean api来读它,有必要一本正经地搞getFoo(), getBar()吗?直接就两个foo,bar field,简单点不好?
天使:”反正就是IDE点几下,又不费事。“
恶魔:”可是,它占行数啊。我看着没用的代码眼晕啊“
天使:”getter可以控制只读“
恶魔:”不是有final呢嘛?“
天使:”用方法可以implement interface“
恶魔:”可是这里没有interface啊。就是一个纯值对象“
天使:”可以在getter()里面封装其它的逻辑,直接操作field没有这个灵活性“
恶魔:”搜索整个代码库,几乎95%的情况下,getter/setter都是简单的get/set。有必要为这个旷世罕见的灵活性增加复杂度么?“
天使:”getter是标准。sun推荐的。大家都这么干的“
恶魔:(音乐起,微笑)”紧张的生活会造成心跳加快,内分泌失调,皮肤老化,头发枯黄。所以当可以get日和set日的时候,让我们放开身心,勇敢地被日以及日吧!“
分享到:
相关推荐
《深入解析getaddrinfo.c:C语言在Linux DNS解析中的应用》 在计算机网络编程中,DNS(Domain Name System)是互联网的一项基础服务,它负责将人类可读的域名转换为IP地址。在Linux系统中,`getaddrinfo()`函数是...
《GetData.Graph.Digitizer.v2.24》是一款强大的数据提取工具,专为科研和工程领域的用户设计。这款软件能够帮助用户从各种图形文件中精确地获取曲线的坐标数据,以便进行进一步的数据分析和处理。在学术研究和工程...
Function string GetIp(string name) Library "GetNet.dll" //得到本机IP地址 Function string GetLocalIp() Library "GetNet.dll" //通过ip得到域名 Function string GetName(string ip) Library "GetNet.dll" //...
getPdf.pdf
游戏源码分享下载 --- get36.zipHTML5小游戏【算术游戏--找到相加等于36的组合get36】游戏源码分享下载 --- get36.zipHTML5小游戏【算术游戏--找到相加等于36的组合get36】游戏源码分享下载 --- get36.zipHTML5小...
GetData.dll 版本:0.2 作者:kernzhang 测试结果:在SQL server2k测试通过、在postgre上测试通过 ,有网友在oracle上测试通过(但未认证) 本程序采用了ODBC3版本编写,原则上适合于任何一个关系型数据库
Filename.....: Get.Smart.1965.S01E30.The.Last.One.In.Is.A.Rotten.Spy.avi Filesize.....: 183,820,288 bytes Runtime......: 25:25.762 (36582 frames) Video Codec..: XviD 1.1.2 Final (B-VOP//) Video Bit...
用于提升用户等级,获得管理员权限,是的完全操控肉鸡
获取项目路径js方法,配置地图时有用到。获取项目路径js方法,配置地图时有用到。
ASP图片验证码,用于验证提交表单的合法性。验证码以图片的形式输出显示。
Advanced GET — 波浪分析工具 综观全世界股市的庄家无论是调研分析或操盘技术都是精益求精,甚至标准到令人目瞪口呆的地步,他们作为市场主力使用Advanced GET高级数学模型客观智能数浪,严格按照有关的技术和设定...
此docker安装脚本为官方提供的,可以从网上下载,此处直接上传。安装docker客户端,get-docker.sh
get-docker.sh docker安装脚本,可直接执行 sh get-docker.sh --mirror Aliyun 安装
`get-pip.py`是一个Python脚本,它的主要作用是为没有预装`pip`的Python环境安装`pip`。在Python 2.7中,由于某些系统可能没有默认提供`pip`,或者`pip`版本过低,`get-pip.py`就显得非常有用。这个脚本可以下载并...
GetData 图片曲线数据提取软件,很好用的图形曲线提取类软件
用于安装python的pip插件,下载后运行该文件即可:'python get-pip.py'. 若没有权限则使用 'sudo python get-pip.py' (linux macOS)。
getPDF.jsp.pdf
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py python get-pip.py
get-pip.py 安装pip