使用类库

使用类库

提倡使用类库是我对于软件质量保证的一个重要论点。其实在开发的过程中,我们不可避免的需要使用类库,这一点和你使用什么样的编程语言无关。但是可能很多人无法意识到这一点,或者并不觉得类库和语言有什么不同。但是我们看看,具有丰富的类库支持基本上是现代通用编程语言的一个基本特点。一般来说,基本的类库一定回包含如下内容:文件操作,和操作系统交互,提供一些通用的数据结构,比如线性表,栈,hash表等,还有字符串的支持。


我们如果认真的回忆一下自己在编程中做的事情就会发现,与其说我们在用某种语言编程,不如说我们是在用某种语言提供的类库编程。使用java的开发者,在这一点上,体会应该更加的明显,因为如果没有良好的类库支持,java语言就其语言的特色来说,几乎就乏善可陈了。而且你常用的很多方法和对象,比如System.out.println(),还有常用的String,都是类库提供的支持。此外什么servlet啦,jdbc啦,这些统统是类库提供的支持。而且java语言第三方的类库也是极其丰富的,甚至andrios系统的开发也可以看做是java的某一种类库的使用。得益于这些类库的支持,现在的java开发,几乎是无所不能的,所以java是一种非常好的通用跨平台语言,这个优势几乎无法被其他的语言所替代。所以我们可以发现很多流行的语言都有java的移植版本,比如python有jython,ruby有jruby,而且基于jvm的语言也很多,比如时下很流行的scala,clojure,groovy等。

尽可能的使用类库,有很多好处。其一,bug少。因为类库发布的时候往往都会做好全面的测试,那么它的bug肯定比你自己实现的要少。其二,代码容易阅读,使用类库,大量的逻辑被组织成类库的api的形式表达,这样如果熟悉类库,很容易理解其操作,就算不熟悉类库,由于代码量的减少,理解的难度也会下降。第三,就是能够有效的减少代码量,众所周知,尽可能的减少代码量是提供代码质量的重要渠道。

如果这么语言本身有这样的类库支持,我们就应该尽可能的利用类库的功能,而不是自己通过一些算法来实现。举个例子:使用java语言如何反转一个字符串,比如“abc”,反转成“cba”?通常的思路是首先用for循环把字符串拆成一个字符串数组或者char数组。这个时候你可能想到了substring方法,当然这个方法其实就出自String类的实例方法。但是这个想法本身就已经错了,正确的反应应该是看看String类本身是不是有reverse方法。如果没有那么可以看看apache的commons类库里面是否有String的reverse支持。好吧,很不幸,你是在做面试题,而且没有互联网的支持,那么寻找第三方类库的方法其实是行不通的。那么你也不应该使用substring,因为其实java的StringBuilder类中有reverse方法。具体做法如下:

String in="abcdefg";
 StringBuilder builder=new StringBuilder(in);
 builder.reverse();
 in=new String(builder);

由于StringBulider是一个builder模式的实现,所以它的每一个方法都会返回实例本身,因此可以简写成一条语句:

String in
=
“abcdefg”
;
in
=
new 
String
(
new 
StringBuilder
(
in
).
reverse
());

当然你完全可以用for循环+if语句写出一个极其复杂的实现。但我不认为那样做会令你的面试加分。

复杂似乎能体现一个人的水平,其实这完全是一种错误的见解。恰恰相反,简单才能体现一个人的水平,比如爱因斯坦的质能方程,并不复杂。欧姆定律,非常简单。因此在开发的过程中不要事事都往复杂的方面去想。尽可能的利用类库,就是这么做的第一步。

转载于:https://my.oschina.net/clarkhill/blog/165486

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110000.html原文链接:https://javaforall.net

(0)
上一篇 2021年8月26日 下午12:00
下一篇 2021年8月26日 下午12:00


相关推荐

  • centos8下重启网卡命令_Centos8 重启网卡方法

    centos8下重启网卡命令_Centos8 重启网卡方法问题情况 1 虚机 centos8 修改为静态 ip 后 由于网卡网段变更 无法上网 2 最小化安装 没有 ifconfig3 firewalld selinux 关闭 4 ping 不通物理机根本原因 静态路由配置错误解决方案 1 linux 命令 gt ip ipaddr 查看网络配置 nmcli 查看网络配置 2 修改为 DHCP 或修改默认路由为正确的默认路由地址修改配置文件 vi etc

    2026年3月17日
    2
  • 基于ERNIE Bot SDK的智能文本纠错:技术实现与应用实践

    基于ERNIE Bot SDK的智能文本纠错:技术实现与应用实践

    2026年3月12日
    2
  • libiconv安装

    libiconv安装1 yum 安装 yum yinstalllibe devel2 源码安装 yum yinstalllibe develcd wgethttp ftp gnu org pub gnu libiconv libiconv 1 15 tar gztar zxvflibiconv 1 15 tar gzcdlibico

    2026年3月16日
    1
  • idea查看激活码-激活码分享[通俗易懂]

    (idea查看激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月26日
    71
  • 利用135端口的思路

    利用135端口的思路前言 通过 135 端口入侵实际上是利用 RPC 漏洞来攻击计算机的 一般情况下 135 端口主要用于使用 RPC RemoteProced 远程过程调用 协议并提供 DCOM 分布式组件对象模型 服务 通过 RPC 可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码 使用 DCOM 可以通过网络直接进行通信 能够跨包括 HTTP 协议在内的多种网络传输 RPC 本身在处理通过 TCP IP 的消息交换部分有一个漏洞 该漏洞是由于错误地处理格式不正确的消息造成的 会影响到 RPC 与 DCOM 之间的一个接口

    2026年3月18日
    2
  • RailsCasts批量下载地址之Ruby代码

    RailsCasts批量下载地址之Ruby代码

    2022年3月12日
    58

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号