当前位置: 首页 > 后端技术 > Java

如何让一段简单的代码变得复杂?(快来长见识)

时间:2023-04-01 22:58:40 Java

来源:zhihu.com/question/277243683/answer/393676961这个问题你应该问企业级的Java架构师。例如打印一个helloworld。在主要功能中打印它?太面向过程,太low了。一个类必须被封装。称为打印机。Printer有一个名为print的成员方法。但!就一个类太低了,万一以后有不同的实现呢?所以你必须添加一个接口。打印机接口。但!接口没有实现,必须有默认实现。所以你要加一个虚类,AbstractPrinter实现PrinterInterface,Printer继承AbstractPrinter。但!你有这样一个集合,如何创建一个实例?直接新建打印机()?太低了,这就是所谓的实现依赖。当然不是,所以我们需要创建一个工厂类PrinterFactory,PrinterFactory使用PrinterInterface返回一个实例,从而隐藏了实现细节。但!PrinterFactory本身也是一个实现类,太low了,所以必须要有PrinterFactoryInterface,AbstractPrinterFactory。以及如何在PrinterFactory中写入?直接新建打印机()?太低。仍然依赖于实现。最后还得在代码里拼装这一堆东西,太丑了,各种新的实现类。太低!幸运的是,我们有一个高级的东西叫做依赖注入!将整个程序对象结构写入配置文件。当然,这套不能自己造轮子。让我们配置Spring。这么多libs,光靠命令行或者IDE项目管理肯定是不行的,必须要有依赖管理。Maven,Gradle,努力吧。最后,如何将要打印的东西传递给程序呢?硬编码?命令行参数?太低!当然,它必须用XML编写。当然企业级光靠XML是不够的,还是加DTD校验吧。那么就涉及到XML解析的问题了。你直接在代码中使用解析器吗?太低!当然,我们需要编写解析器包装类、接口、抽象类、实现类、工厂类。毕竟不能靠实现,万一我以后改了parser怎么办。所以最后成品就是一堆配置文件,一堆jar,编译出来的程序200MB。IDE要装300个插件,打开项目后硬盘响了半天,吃光2GB内存,然后弹出一堆插件提示升级。哦,对了,在这一切发生之前,你得先画出UML图。三年后,项目完成,部署到客户的服务器时,立即崩溃,堆栈痕迹遍地都是。原来客户服务器用的是JDK5,新项目需要JDK6,然后问客户能不能升级。答案是否定的,因为另一个企业级开发团队做的企业级方案只支持JDK5。然后客户骂你架构师。做了那么多设计有没有想过要换JDK?近期热点文章推荐:1.1000+Java面试题及答案(2022最新版)2.厉害了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!