java不开源_吐槽一下国内 Java 的开源作者

31

2018-06-13 17:35:52 +08:00   b7048e5c0150a989fed46971f5ac1886.png 5

顺便黑一下 JAVA:

就比如 print 一句 hello world 吧。main 函数里 print 一下?太面向过程,太 low 了。

得封装一个类。叫 Printer. Printer 有个成员方法,叫 print。

但是!光一个类太 low 了,以后要是有不同的实现怎么办?所以得加一个接口。PrinterInterface。

但是! interface 是没有实现的,还是要有默认实现才行。所以得加个虚拟类,AbstractPrinter 实现 PrinterInterface,然后 Printer 继承 AbstractPrinter。

但是!你有了那么一套,该怎么创建实例呢?直接 new Printer()?太 low 了,那叫实现依赖。肯定不行的,所以要搞一个工厂类,PrinterFactory,PrinterFactory 用 PrinterInterface 返回实例,这样就隐藏了实现细节了。

但是! PrinterFactory 本身也是实现类啊,太 low 了,所以得有 PrinterFactoryInterface, AbstractPrinterFactory.

而且在 PrinterFactory 里面该怎么写呢?直接 new Printer()? 太 low 了。还是实现依赖。

最后,你要把这一堆玩意在代码里组装起来,也太难看了,各种 new 实现类。太 low !

好在我们有个高级玩意,叫依赖注入!把程序对象结构全写到配置文件里面。这一套当然是不能自己造轮子的。配置 Spring 吧。搞了那么多 lib,靠命令行或者 IDE 的项目管理肯定不够啊,得有依赖管理。Maven 啊 Gradle 啊使劲上。

最最后,要 print 的东西怎么传给程序呢?硬编码?命令行传参数?太 low !当然得写在 XML 里头。

光是 XML 当然还不够企业级,再加上 DTD 验证吧。

然后就涉及到了 XML 解析的问题了。代码里直接操起 parser 吗?太 low! 当然要写个 parser 的包装类,interface, abstract class, implementation class, factory class 再来一套。毕竟,不能依赖实现啊,以后我要是换 parser 了怎么办。

所以最后是成品是一堆配置文件,一堆 jar,compile 出来的程序 200MB。

IDE 得装上 300 个插件,打开项目硬盘响老半天吃掉 2GB 内存,然后一堆插件弹提示要求升级。

哦对了,在这一切发生之前,还得画 UML 图呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值