为什么写java的同学喜欢过度设计

这是因为:写java同学为了拼命证明自己的能力,显得自己很强很重要,既然不能往深度玩,当然就只能在概念上、在业务上玩出花了,然后对外行人说,“你看,我多重要”。过度设计是认知过程中的必经阶段,用什么语言都一样。

写java同学为了拼命证明自己的能力,显得自己很强很重要,既然不能往深度玩,当然就只能在概念上、在业务上玩出花了,然后对外行人说,“你看,我多重要”。过度设计是认知过程中的必经阶段,用什么语言都一样。

在 Spring 的生态环境中,大量使用了类似这种形式的设计方案。例如 ViewResolver 接口,它具有丰富的子级层次结构和非常多的实现类。(例如:InternalResourceViewResolver、VelocityLayoutViewResolver)。在框架的其他部分也有非常多的示例(beanFactory、ApplicationContext)。

但是,要明白的一些重点是:

Spring 在层次化的结构设计中组织了许多不同的子类。

Spring 是一个框架,框架的含义是可扩展,不可修改。

在我们写过的大多数 Spring Web 程序中。找到我们定义的接口(Controller、Service、Dao),会发现,大多数情况下,他们的实现类只有一个,而且可能会用 Impl 为后缀。如果接口位于 xyz 包中,那么实现类就会在 xyz.impl 包中,不知道大家会不会对与此种设计感到好奇?为什么要这样做?我们很难为接口的实现类提供一个相关的名称,因为实现类和接口之间没有语义上的区别,即实现类没有专门化接口。基于此得出的结论是:这种接口不是必须的。

一些高级开发人员可能会说:“即便现在没有用,抽象设计在以后也有用!”。但是,为了将来的可能会有用这一点而在现在加入了一堆不必要的东西,只会浪费前期时间,而且对于大多数的 Web 程序来说,以后也不会有用。这种设计方法无疑与敏捷开发相冲突。

当然,即使在以后真的有这种需求了,借助现代 IDE 的重构功能,也可以很方便的修改程序。

早期的 Spring 动态代理只有 JDK 的动态代理,新版本的 Spring 早已经支持了 cglib 代理方式,所以创建一个接口只是为了可以实现动态代理这方面也是不成立的。

延伸阅读:

什么是Java?

Java具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的形式和感觉,但它要比C++语言更易于使用,而且在编程时彻底采用了一种以对象为导向的方式。

Java是一种编程语言,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的“形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种“以对象为导向”的方式。

使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

文章标题:为什么写java的同学喜欢过度设计,发布者:小编,转载请注明出处:https://worktile.com/kb/p/40978

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月23日
下一篇 2023年2月23日

相关推荐

  • jira如何创建scrum项目

    步骤:一、登录Jira账号并在主页点击“创建项目”按钮;二、选择“Scrum软件开发”选项;三、填写项目详细信息;四、点击“创建”按钮;五、在项目主页中添加团队成员、创建Sprint和用户故事等。首先需要登录到Jira账号。在Jira的主页上点击“创建项目”按钮。 一、登录Jira账号并在主页点击“…

    2023年3月21日
    15800
  • 大数据和云计算有什么区别

    大数据和云计算是现代技术领域的两个重要概念。它们的主要区别包括:1.定义和目的不同;2.技术实现差异;3.数据处理方式的不同;4.安全和隐私考量;5.部署和可扩展性;6.应用和业务场景。虽然它们在某些方面有所重叠,但它们解决的问题和所提供的解决方案有所不同。 1.定义和目的不同 2.技术实现差异 3…

    2023年7月16日
    11600
  • 全面质量管理6大工具包括哪些

    全面质量管理6大工具包括:1、鱼缸会议;2、横向思维;3、帕雷托分析法( Pareto Analysis);4、质量功能分布图(QFD);5、关联树图;6、方案效果分析法( solution effect analysis)。其中鱼缸会议是一种组织会议的方式。 下面介绍几种质量工具及如何运用它们解决…

    2022年10月17日
    18500
  • it项目经理如何做好项目的质量管理

    做好项目的质量管理要做到:一、质量产生于过程,需要成熟稳定的项目过程;二、制定软件质量管理计划;三、重视软件项目评审,尽早发现所有缺陷;四、构建全过程质量管理体系;五、建立定期过程改进机制,优化项目管理流程。 一、质量产生于过程,需要成熟稳定的项目过程 软件项目质量产生于开发过程,要想真正提高软件质…

    2023年3月30日
    24300
  • 自动化立体库系统软件的关键构成部分有哪些

    自动化立体库系统软件的关键构成部分有:1、立体式双层货架;2、巷道码垛机;3、出入库运输系统软件;4、AGV或其他输送设备;5、管理监测中心;6、皮带运输机推动系统软件。立体式双层货架,用以存放货物模块。 一、自动化立体库系统软件的关键构成部分 1、立体式双层货架,用以存放货物模块。 2、巷道码垛机…

    2023年5月7日
    5000
  • 产品需求优先级

    产品需求优先级根据以下几点定:一、需求的投入产出比;二、需求的紧急程度;三、需求与产品策略的契合度;四、需求之间的潜在联系;五、根据实际可调配的资源情况。一般情况下,判断产品需求优先级的主要依据是需求的投入产出比(ROI)。 一、需求的投入产出比 一般情况下,判断产品需求优先级的主要依据是需求的投入…

    2023年3月31日
    14400
  • 植入后门的方法通常包括哪些

    植入后门的方法通常包括:1、后门与端口通信;2、后门绕过防火墙;3、后门检查可用的连接和传输文件;4、后门通过社交媒体网站连接到C&C等。后门与端口通信是指,编写后门程序以与计算机端口进行通信,即端口绑定。 1、后门与端口通信 如果网络没有防火墙,攻击者更容易编写后门程序以与计算机端口进行通…

    2023年1月9日
    37500
  • 反卷积和上采样卷积的区别

    反卷积与上采样卷积的区别有:1、定义不同;2、操作过程;3、应用场景;4、效果;5、参数量;6、与下采样的关系。其中,定义不同是指反卷积是通过已知的输出和卷积核来估算原始输入,而上采样卷积是通过插值或学习得到的参数对输入进行放大。 1、定义不同 反卷积:也被称为转置卷积,是通过已知的输出和卷积核来估…

    2023年7月30日
    11200
  • 做CI用什么软件

    做CI用的软件有:1、Jenkins;2、CircleCI;3、TeamCity;4、Bamboo;5、GitLab等。Jenkins 是一个开源自动化服务器,在其中进行集中构建和持续集成。它是一个独立的基于 Java 的程序,带有 Windows,macOS,Unix 的操作系统的软件包。 一、J…

    2023年4月30日
    8500
  • APP开发为什么选择云服务器

    APP开发为什么选择云服务器:1、减少成本费用;2、确保业务的开展;3、维护管理水平高;4、云服务器资源丰富。实际上许多公司并不能够承担传统式网络服务器的产品成本的,投入很多的成本费资金还不一定能做到所须要的实际效果,因小失大。 一、减少成本费用 实际上许多公司并不能够承担传统式网络服务器的产品成本…

    2023年5月31日
    6000

发表回复

登录后才能评论
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部