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()`函数是...
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...
用于提升用户等级,获得管理员权限,是的完全操控肉鸡
Function string GetIp(string name) Library "GetNet.dll" //得到本机IP地址 Function string GetLocalIp() Library "GetNet.dll" //通过ip得到域名 Function string GetName(string ip) Library "GetNet.dll" //...
《GetData.Graph.Digitizer.v2.24:高效图片数据提取工具详解》 在现代科研工作中,数据分析是一项至关重要的任务,而 GetData.Graph.Digitizer.v2.24 正是一款专为此目的设计的强大软件。这款工具能够从图像中精确...
获取项目路径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
get-pip.py 安装pip
GetConnection.java
GetSign.apk