记一次开发过程中的思维转换

简介:

一、问题:
有一个同事接到一个新的开发任务,需要把spring框架改成springboot,但是他遇到了一个久久不能解决的问题。
原本的项目中有一个类似这样的类:


public class MyTest{
private String name;
public String getName(){
     return name;
}
public void setName(String name){
    if(name!=null&&name.length &lt= 0){
            this.name="defName";
    }
}

}

这是一个比较常规的拥有get、set方法的类,稍微特殊的是这个set方法里边有一定的逻辑处理。
之前的项目中,与这个类配套的是一个spring的xml配置文件,在配置文件中给这个类实例化,配置文件大概如下:


&ltbean id="myTest" class="com.test.MyTest">
&ltproperty name="name">
      &ltvalue>${name}</value>
&lt/property>

&lt/bean>


然后就是在properties文件中给name设置了具体的值。
那么他把spring改成springboot的打算,是去掉xml中的配置,直接用注解的方式给name属性赋值。
问题就在于,如果直接在name属性上加@value注解,就丢失了原本set方法中的逻辑处理,如果保留set方法中的逻辑处理,就无法成功从properties文件中获取需要的值。

二、思路转换
然后,他找到我一起讨论这个问题,而我实际上也不知道怎么两者兼容。
但是,经过思考和分析,我觉得在这件事上,并不是说必须要保证上述两者的兼容。
在这里,我们set的目的只是为了给name赋予一个正确的、我们想看到的值,重要的并不是set,而是get,因为get到的内容才是后边我们要拿来用的。
那么很显然我们就可以转换一下思路,并不是说一定要那段逻辑在set方法中,完全可以换到get中写。
虽然逻辑实现的地点变了,但是最终拿到的内容并没有区别,也一样实现了应有的功能。

三、感想
软件开发的过程,就是一个设计的过程,设计虽说有一些规律可循,但细节上并不是一成不变。
很多时候直线走不通,完全可以绕一点路,或许到达目的地的时间能比直线更快。
软件设计的目的并不在于软件设计的本身,而是用软件来解决实际问题,如果一味纠结与代码本身,而不是要解决的实际问题,可能很容易陷入一个死胡同,严重拉低工作的效率。

目录
相关文章
|
IDE 测试技术 持续交付
Python自动化测试与单元测试框架:提升代码质量与效率
【9月更文挑战第3天】随着软件行业的迅速发展,代码质量和开发效率变得至关重要。本文探讨了Python在自动化及单元测试中的应用,介绍了Selenium、Appium、pytest等自动化测试框架,以及Python标准库中的unittest单元测试框架。通过详细阐述各框架的特点与使用方法,本文旨在帮助开发者掌握编写高效测试用例的技巧,提升代码质量与开发效率。同时,文章还提出了制定测试计划、持续集成与测试等实践建议,助力项目成功。
267 5
|
11月前
|
SQL 数据库
通义灵码相关代码补全场景DEMO
通义灵码展示了相关代码补全的DEMO,特别是在数据库实体表类场景中。若无相关性代码补全,生成的字段可能无效且SQL无法识别;而有了该功能,则能精准生成表结构字段,消除模型幻觉,提升代码准确性和效率。
190 0
|
存储 Linux
Linux 本地yum源配置 (详简篇)
Linux 本地yum源配置 (详简篇)
6167 1
AQS (AbstractQueuedSynchronizer) 概述
AQS (AbstractQueuedSynchronizer) 概述
|
弹性计算 数据可视化 搜索推荐
阿里云建站方案汇总以及建站流程说明归纳
使用阿里云建站可以有三种,第一种是购买ECS云服务器;第二种方式是购买阿里云官网云速成美站;第三种是使用阿里云官方定制建站。
392 0
|
5天前
|
云安全 人工智能 自然语言处理
|
9天前
|
人工智能 Java API
Java 正式进入 Agentic AI 时代:Spring AI Alibaba 1.1 发布背后的技术演进
Spring AI Alibaba 1.1 正式发布,提供极简方式构建企业级AI智能体。基于ReactAgent核心,支持多智能体协作、上下文工程与生产级管控,助力开发者快速打造可靠、可扩展的智能应用。
855 26
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
437 4